numpy 数组索引数组

在numpy中,数组除了可以被整数索引,还可以被数组索引.

a[b]就是已数组b的元素为索引,读取数组a的值.

当被索引数组a是一维数组,b是一维或则多维数组时,结果维度维度与索引数组b相同。

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的第一维。

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)

 

posted @ 2019-01-07 19:12  冰皮抹茶  阅读(2482)  评论(0编辑  收藏  举报