Numpy學習(三)
Numpy索引
通過下標進行索引
a=np.arange(3,15).reshape((3,4))
print(a)[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]print(a[1])
[ 7 8 9 10]
print(a[2,2])
13
print(a[:,2])
[ 5 9 13]
for row in a:
print(row) #按行遍歷[3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]for item in a.flat:
print(item) #按項遍歷3
4
5
6
7
8
9
10
11
12
13
14
數組合並
上下合併
a=np.array([1,1,1])
b=np.array([2,2,2])
c=np.vstack((a,b))
print(c)[[1 1 1]
[2 2 2]]
左右合併
c=np.hstack((a,b))
print(c)[1 1 1 2 2 2]
陣列分割
等量分割
a=np.arange(12).reshape((3,4))
print(a)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]c=np.vsplit(a,3) #上下分3塊
print(c)[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
c=np.hsplit(a,2) #左右分兩塊
print(c)[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]c=np.split(a,2,axis=1) #左右分兩塊
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]c=np.split(a,3,axis=0) #上下分3塊
print(c)[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
不等量分割
c=np.array_split(a,3,axis=1) #左右分3塊
print(c)[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2],
[ 6],
[10]]), array([[ 3],
[ 7],
[11]])]
陣列賦值
numpy中賦值(=)的兩個物件會被關聯,及相等,之後對其中任何一個量操作,另一個量也會發生同樣的變化。
為了避免關聯情況,一般選擇copy
b=a.copy() #深拷貝