Oletagem, et üht ja sama katset on sooritatud mitu korda ja andmefaili nimi
sisaldab katse järjekorranumbrit, näiteks 'katse_0.txt'
,
'katse_1.txt'
, jne. Sel juhul kõik andmefailid saab korraga mällu
laadida nii:
katseid = 20
mõõdetud = [np.loadtxt(f'katse_{i}.txt') for i in range(katseid)]
Siin viimases reas on list comprehension, mis on ekvivalentne koodiga
mõõdetud = []
for i in range(katseid):
mõõdetud.append(np.loadtxt(f'katse_{i}.txt'))
Seega järjendi mõõdetud
elemendid on NumPy massiivid (ja andmetulbad
pole esialgu eraldatud).
Järjendi asemel võib kasutada ka spetsiaalset tüüpi NumPy massiivi, aga see tasub kohe
reserveerida õige pikkusega:
mõõdetud = np.empty(katseid, dtype=object)
for i in range(katseid):
mõõdetud[i] = np.loadtxt(f'katse_{i}.txt')
Oletagem, et kõigi andmeseeriatega tuleb teostada üks ja sama
andmetöötlusoperatsioon, mida esindab funktsioon töötle
.
See tegevus mahub endiselt ühele reale:
töödeldud = [töötle(andmed) for andmed in mõõdetud]
Funktsiooni töötle
tüüpkuju:
def töötle(andmed):
aeg, signaal = andmed.T
... # siin toimub sisuline
... # töö vektoritega
... # aeg ja signaal
return tulemus