如果我有:
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
中的行索引的元素。我如何以这种方式或与此类似的方式实现此功能?
答案 0 :(得分:1)
这是advanced indexing的用途;将行索引和列索引提取到两个单独的数组中,并使用它们对数组进行子集化:
x[inds[:,0], inds[:,1]]
# array([1, 4, 5])