1. 程式人生 > >Numpy學習(三)

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()     #深拷貝