Introduktion til NumPy i Python

NumPy er et modul i Python som tillader multi-dimensionelle lister.

Sammenlignet med data typen “list” i Python er NumPy lister på mange måder mere efficiente, dvs.: … mere tidsparende kodning … hurtigere operationer … mindre hukommelse brugt … flere metoder og variabler som tillader operation med multi-dimensionelle lister

Her følger en hurtig introduktion til lister i NumPy.

# import af NumPy
import numpy as np

# oprettelse af en NumPy liste med .array ; her med kun én dimension 
arr1 = np.array([2,3,4])
arr1
array([2, 3, 4])
# oprettelse af en NumPy Liste med .arange ; her med kun én dimension
arr2 = np.arange(1,11,1)
arr3 = np.arange(1,11,2)
arr4 = np.arange(1,11,3)

print(arr2)
print("---")
print(arr3)
print("---")
print(arr4)
print("---")
[ 1  2  3  4  5  6  7  8  9 10]
---
[1 3 5 7 9]
---
[ 1  4  7 10]
---
# oprettelse af en liste med .linspace
arr5 = np.linspace(0,10,3)
arr6 = np.linspace(0,10,11)

print(arr5)
print("---")
print(arr6)
print("---")
[ 0.  5. 10.]
---
[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
---
# .reshape metoden, her for at formatere en 1-D liste til en 2-D liste
arr7 = np.array([1,2,3,4])
print(arr7)
print("---")

arr8 = arr7.reshape(2,2) # arr8 er arr7, men brudt op i to rækker og to spalter (dvs. en 2-D liste)
print(arr8)
[1 2 3 4]
---
[[1 2]
 [3 4]]
# NumPy objekter har en række instansvariabler; f.eks. .size, .shape, .dtype, .itemsize
print(arr8.size)
print(arr8.shape)
print(arr8.dtype)
print(arr8.itemsize)
4
(2, 2)
int32
4
# i dette tilfælde var arr8 gemt som int32, dvs. 32 bit heltal; hvis f.eks. 16 bit er nok, kan jeg angive dette
arr9 = np.array([1,2,3],dtype="int16")
print(arr9)
print(arr9.itemsize)
print(arr9.dtype)
[1 2 3]
2
int16
# matematiske operationer og logiske tests kan udføres hvor alle elementer eller hele dimensioner på énn gang
print("arr8: ---")
print(arr8)
print("arr8 < 2: ---")
print(arr8 < 2)
print("arr8 * 5 ---")
print(arr8 * 5)
arr8: ---
[[1 2]
 [3 4]]
arr8 < 2: ---
[[ True False]
 [False False]]
arr8 * 5 ---
[[ 5 10]
 [15 20]]
# med NumPy metoderne .zeros og .ones kan jeg oprette lister fyldt med 0 eller 1
print(np.zeros((3,3))) # formen skal angives med (), dvs. (3,3) betyder 3 rækker og 3 spalter
print(np.ones((3,3)))
[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
# numpy ompfatter random pakken, som byder på en række metoder, f.eks. .random
print(np.random.random((3,3)))
[[0.56983016 0.86417024 0.39347478]
 [0.88117104 0.63507185 0.11216017]
 [0.22805491 0.02687843 0.5127805 ]]
# random pakken omfatter også .shuffle
arr10 = np.array([1,2,3,4,5])
np.random.shuffle(arr10)
print(arr10)
[2 3 1 4 5]
# random pakken omfatter også .choice metoden
np.random.choice(arr10)
2
# random pakken omfatter også .random_sample
print(np.random.random_sample(arr10.shape))
[0.41 0.03 0.79 0.07 0.29]
# random pakken omfatter også randint
print(np.random.randint(-100,100,size=(2,2))) # size er her formen, dvs. her 2 rækker og 2 spalter
[[-51  84]
 [ 64 -69]]
# med NumPy kan man beregne en række statistiker
arr11 = np.array([[1,2,3],
                [4,5,6]])
print("arr11: --- ")
print(arr11)
print("arr11.sum(): --- ")
print(arr11.sum())
print("arr11.max(): --- ")
print(arr11.max())
print("arr11.min(): --- ")
print(arr11.min())
print("arr11.mean(): --- ")
print(arr11.mean())
print("arr11.var(): --- ")
print(arr11.var())
print("arr11.std(): --- ")
print(arr11.std())
# I NumPy er det muligt at indstille præcisionen af talangivelser, med .set_printoptions
np.set_printoptions(precision=2,suppress=True)
arr12 = np.array([11.3333,12.6666])
print(arr12)
[11.33 12.67]
# men det gælder kun for listerne selv, ikke f.eks. statisiker eller operationer
print(arr12.mean())
print(arr12[0]+arr12[1]/2)
11.99995
17.6666
# statistiker kan beregnes langs én dimension
print("arr11.sum(axis=0): --- ")
print(arr11.sum(axis=0))
print("arr11.sum(axis=1): --- ")
print(arr11.sum(axis=1))
arr11.sum(axis=0): --- 
[5 7 9]
arr11.sum(axis=1): --- 
[ 6 15]
# jeg kan udgive indholdet af NumPy lister på stort set samme måde som for standard Python lister
print("arr11[0,0]: --- ")
print(arr11[0,0])
print("arr11[0,1]: --- ")
print(arr11[0,1])
print("arr11[0]: --- ")
print(arr11[0])
print("arr11[1]: --- ")
print(arr11[1])
print("arr11[:,0]: --- ")
print(arr11[:,0])
print("arr11[0,1:3]: --- ")
print(arr11[0,1:3])
arr11[0,0]: --- 
1
arr11[0,1]: --- 
2
arr11[0]: --- 
[1 2 3]
arr11[1]: --- 
[4 5 6]
arr11[:,0]: --- 
[1 4]
arr11[0,1:3]: --- 
[2 3]

Derudover byder NumPy på ydereligere funktionalitet – dette er kun en kort introduktion.

Leave a Reply

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Close

Meta