用两个1D np数组索引一个3D np数组



我有一个形状为(i,j,k)的3Dnp.array,两个1Dnp.array包含j-轴和k-轴上的索引。

例如

idx = np.array([0, 1])
idy = np.array([1, 2])
array = np.arange(0, 18).reshape(2, 3, 3)
array([[[ 0,  1,  2],
[ 3,  4,  5],
[ 6,  7,  8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]]])

我想要array[0,0,1]array[0,1,2]array[1,0,1]array[1,1,2],也就是np.array([1,5,10,14])

这足够吗:

In [197]: arr[:,idx,idy]
Out[197]: 
array([[ 1,  5],
[10, 14]])
In [198]: arr[:,idx,idy].ravel()
Out[198]: array([ 1,  5, 10, 14])

最新更新