假设我有以下内容:
a = np.array([[1,2,3],[4,5,6]])
idx = np.array([[0,2],[1,2]])
字符串
有没有一种方法可以对数组进行“numpy-slice”,这样我就可以使用idx
中的第i行作为a
中第i行的索引,即a[i,idx[i]]
?
这可以很容易地通过一个循环来完成:
np.vstack([a[i, idx[i]] for i in range(len(a))])
型
但我想一定有一种 numpy 方式。
最终结果应该是:
[[1,3],
[5,6]]
型
做a[idx]
不起作用。如果我做a[:,idx]
,那么我会得到太多的结果,即给出
array([[[1, 3],
[2, 3]],
[[4, 6],
[5, 6]]])
型
很接近但不正确
2条答案
按热度按时间h4cxqtbf1#
使用
np.take_along_axis
沿着1
轴选择所需的索引:字符串
9njqaruj2#
你可以使用NumPy的高级索引来获得你想要的结果。
字符串
输出量:
型