如何构建索引集以引用数组

How to build set of indices to reference an array

如果我有:

x = np.asarray([[1,2],[3,4],[5,6]])

我想创建:

y = np.asarray([1,4,5])

为了做到这一点,我构建了一个数组如下:

inds = np.asarray([[0,0],[1,1],[2,0]])

然后我将它传递给 x 如下:

y = x[inds]


这不会产生由 inds 中的行索引的元素。我如何以这种方式或与此非常相似的方式实现此功能?

这就是 advanced indexing 的目的;将行索引和列索引提取到两个单独的数组中,并使用它们对数组进行子集化:

x[inds[:,0], inds[:,1]]
# array([1, 4, 5])