在numpy中,數組除了能夠被整數索引,還能夠被數組索引.數組
a[b]就是已數組b的元素爲索引,讀取數組a的值.spa
當被索引數組a是一維數組,b是一維或則多維數組時,結果維度維度與索引數組b相同。code
a = np.array([7,8,9,10]) b=np.array([[3,1],[1,2]]) print('a:',a) print('b:',b) print('result:',a[b]) print(a[b].shape)
a: [ 7 8 9 10] b: [[3 1] [1 2]] result: [[10 8] [ 8 9]] (2, 2)
當被索引數組a是多維數組,b是一維或則多維數組時,每個惟一的索引數列指向a的第一維。blog
a = np.array([ [0, 0, 0], # 黑色 [255, 0, 0], # 紅色 [0, 255, 0], # 綠色 [0, 0, 255], # 藍色 [255, 255, 255] # 白色 ]) b= np.array([ [0, 1, 2, 0], [0, 3, 4, 0] ]) print(a.shape) print(b.shape) print('result:',a[b]) print(a[b].shape)
(5, 3) (2, 4) result: [[[ 0 0 0] [255 0 0] [ 0 255 0] [ 0 0 0]] [[ 0 0 0] [ 0 0 255] [255 255 255] [ 0 0 0]]] (2, 4, 3)