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.

Industriingeniør som gerne beskæftiger sig med optimering, simulation og matematisk modellering i R, SQL, VBA og Python

Leave a Reply