我正在尝试使用索引数组获取ndarray
的值。
假设a
是目标数组,b
是索引数组。然后:
a = np.asarray([[[1,2,3]],[[2,3,4]],[[3,4,5]]])
b = np.asarray([[0,0,1],[0,0,2]])
print a[tuple(map(tuple, b))]
应该返回我想要的但是我得到“Index Out Of Bound Error”。
我期望的输出是:
[2,3]
答案 0 :(得分:3)
IIUC,你想要a[tuple(b.T)]
。使数字唯一,以便更容易验证:
>>> a = np.arange(9).reshape(3,1,3)
>>> b = np.asarray([[1,0,2],[2,0,0]])
>>> a
array([[[0, 1, 2]],
[[3, 4, 5]],
[[6, 7, 8]]])
>>> b
array([[1, 0, 2],
[2, 0, 0]])
>>> a[1,0,2]
5
>>> a[2,0,0]
6
>>> a[tuple(b.T)]
array([5, 6])