NumPy er ein pakke for vitenskapelig databehandling for Python, som mellom anna inneheld arrays, som eg skal ta for meg her. Det fins også eit bibliotek som heiter array, men denne lenka seier at det er betre med numpy arrays.
Hvis du søkjer på ordet array i programmering, eller les lærebøker i
programmering, kan du treffa på definisjonar som er akkurat slik vi har
definert lister.
Men når eg snakkar om arrays her, er det numpy-arrays det handlar om, så
derfor sløyfer eg "numpy-". Forskjellen på lister og arrays er kva du kan
gjera med dei, og at ein del operasjonar, som "+", har ulik
betydning. Sjå nedanfor. Den vanlige måten å importera
numpy er å skriva
import numpy as np
Når vi bruker metodar frå numpy må vi då bruka "fornavnet" np før alle funksjonsnavna. Sjå eksempel nedanfor.
Nyttige funksjonar / kommandoar for å initialisera (gi startverdiar) til eit array:
np.zeros() initialiserer eit array med nullar. Eksempel: np.zeros(3) gir arrayet [0., 0., 0.]
np.ones.() initialiserer eit array med einarar. Eksempel: np.ones(3) gir arrayet [1., 1., 1.]
np.repeat() initialiserer eit array med eit visst antal av same tal. Eksempel: np. repeat(3,5) gir arrayet [3, 3, 3, 3, 3]
np.linspace() gir eit array med tall frå og med ein gitt verdi til og med ein gitt verdi spredd jevnt med eit gitt antal verdiar. Eksempel: np.linspace(-3.0,3.0,num = 6) gir arrayet [-3. -1.8 -0.6 0.6 1.8 3.]
np.arange() gir eit array frå og med ein gitt verdi til (men ikkje med) ein gitt verdi, og med gitt mellomrom. Eksempel: np.arange(-2.0,2.0, 0.5) gir arrayet [-2. -1.5 -1. -0.5 0. 0.5 1. 1.5]
np.random.random(5) gir eit array med fem tilfeldige tal. Les også Random og Random, fru Blom.
eksempel Hvis vi feks definerer ei liste a = [1, 2, 3], og skriv b = 2*a, så vil den nye lista b vera lik [1, 2, 3, 1, 2, 3]. Men hvis vi lagar ei numpy-array (ved feks. å skriva c = np.array(a)). Hvis vi no skriv d = 2*a, så vil det nye arrayet b vera lik [2, 4, 6]. Dette er nyttig hvis vi vil plotta ein funksjon, og vi alt har eit x-array. Då får vi ei y-liste simpelthen ved å y = f(x). Dette kan vi ikkje gjera med lister.
Her skal vi bare sjå på matematikken. Å tegna ein vektor med Matplotlib er litt omstendelig.
Eksempel
Måten summen av to arrays fungerer på, er akkurat det same som ved vektoraddisjon og subtraksjon. Det betyr at når a og b er arrays, kan vi enkelt utføra vektoraddisjon og vektorsubtraksjon ved å skriva:
a + b
a - b
Men vi kan også gjera det same med np.add(a,b) og np.subtract(a-b). Og då treng faktisk ikkje a og b vera arrays. Det funkar også med lister.
x = [1, 2, 3]
y = [4, 5, 6]
numpy.dot gir oss skalarproduktet av x og y:
np.dot(x,y)
32
numpy.cross()
gir oss vektorproduktet av to vektorar
np.cross(x, y)
array([-3, 6, -3])
np.linalg.norm() gir oss (mellom anna) lengden av ein vektor:
np.linalg.norm([3,4])
Out[80]: 5.0
Sjå: Graftegning med Matplotlib.
Det fins mange måtar å lesa frå og skriva til filer. Numpyfunksjonen loadtxt() lar oss importera data frå tekstfiler. Ei tekstfil er ei fil som du kan lesa i feks notisblokk, og som er grei å bruka når vi har små datamengder. Anta vi har ei tekstfil som heiter datafil.tx med ei kolonne for tid og ei for posisjon, og ei overskrift slik:
# tid posisjon
0.1 0.3
0.2 0.4
0.3 0.6
0.4 0.8
0.5 0.85
Då kan vi lesa denne fila med følgande kode:
# Dataimport:
t, s = np.loadtxt('datafil.txt', skiprows=1, unpack=True)
Her bli t og s numpy-arrays som du kan bruka til å plotta data.
Vi kan også lagra data frå eit array til ei tekstfil med numpy.savetxt().
Python Numpy Array Tutorial på datacamp.