在NumPy使用Array

import numpy as np
import pandas as pd

ar = np.arange(5); print(ar);
# [0 1 2 3 4]

ar=np.arange(5); print(ar[::-1])
# [4 3 2 1 0]

ar = np.array([[2,3,4],[9,8,7],[11,12,13]]); print(ar)
# [[ 2  3  4]
#  [ 9  8  7]
#  [11 12 13]]

print(ar[1,1])
# 8

ar[1,1]=5; print(ar)
# [[ 2  3  4]
#  [ 9  5  7]
#  [11 12 13]]

print(ar[::2,::2])
# [[ 2  4]
#  [11 13]]

print(ar[2])
# [11 12 13]

print(ar[2,:])
# [11 12 13]

print(ar[:,1])
# [ 3  5 12]

ar=2*np.arange(6); print(ar)
# [ 0  2  4  6  8 10]

ar[:3]=1; print(ar)
# [ 1  1  1  6  8 10]

ar[2:]=np.ones(4); print(ar)
# [1 1 1 1 1 1]

Fancy Indexing

rand = np.random.RandomState(42)
x = rand.randint(100, size=10)
print(x)
# [51 92 14 71 60 20 82 86 74 74]

print([x[3], x[7], x[2]])
# [71, 86, 14]

print(x[[3,7,2]])
# [71 86 14]

Access rows in 2d array

arr = np.empty((8, 4))
for i in range(8):
    arr[i] = i
print(arr)
# [[0. 0. 0. 0.]
#  [1. 1. 1. 1.]
#  [2. 2. 2. 2.]
#  [3. 3. 3. 3.]
#  [4. 4. 4. 4.]
#  [5. 5. 5. 5.]
#  [6. 6. 6. 6.]
#  [7. 7. 7. 7.]]

print(arr[[4, 3, 0, 6]])
# [[4. 4. 4. 4.]
#  [3. 3. 3. 3.]
#  [0. 0. 0. 0.]
#  [6. 6. 6. 6.]]


Array masking

np.random.seed(45)
ar=np.random.randint(0,25,10); print(ar)
# [11  3  0 21  3  4 24 15  1 14]

evenMask=(ar%2==0); print(evenMask)
# [False False  True False False  True  True False False  True]

evenNums=ar[evenMask]; print(evenNums)
# [ 0  4 24 14]

ar=np.array(['Hungary','Nigeria',
'Guatemala','','Poland','','Japan']); print(ar)
# ['Hungary' 'Nigeria' 'Guatemala' '' 'Poland' '' 'Japan']

ar[ar=='']='USA'; print(ar)
# ['Hungary' 'Nigeria' 'Guatemala' 'USA' 'Poland' 'USA' 'Japan']


Copies and views

ar1=np.arange(12); print(ar1)
# [ 0  1  2  3  4  5  6  7  8  9 10 11]

ar2=ar1
ar2=ar1[::2]; print(ar1); print(ar2)
# [ 0  1  2  3  4  5  6  7  8  9 10 11]
# [ 0  2  4  6  8 10]

ar2[1]=-1; print(ar1); print(ar2)
# [ 0  1 -1  3  4  5  6  7  8  9 10 11]
# [ 0 -1  4  6  8 10]

print(ar2)
# [ 0 -1  4  6  8 10]


Use np.copy to force a copy

ar=np.arange(8); print(ar)
[0 1 2 3 4 5 6 7]

arc=ar[:3].copy(); print(arc)
# [0 1 2]

arc[0]=-1; print(arc)
# [-1  1  2]

print(ar)
# [0 1 2 3 4 5 6 7]