如何构建索引集以引用数组
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])
如果我有:
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])