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("katse_%d.txt" % i) 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("katse_%d.txt" % i))

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("katse_%d.txt" % i)

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(seeria) for seeria in mõõdetud]

Funktsiooni töötle tüüpkuju:

def töötle(seeria):
    aeg, signaal = seeria.T
    ... # siin toimub sisuline
    ... # töö vektoritega
    ... # aeg ja signaal
    return tulemus

Vaata lisaks

Sisukord