Python 棘手的numpy索引

Python 棘手的numpy索引,python,arrays,numpy,Python,Arrays,Numpy,我在一个名为a的二维数组中有值。 我有第二个数组,C,其中我有索引,它引用了a中的单元格。 因此,该数组的维数为(M,N,2) 我想构造维度(M,N)的输出,它由a的值组成,这些值来自C中存储的索引 这是一种类似蟒蛇的方式: a=np.arange(20)。重塑(-1,5) 印刷品(a) # [[ 0 1 2 3 4] # [ 5 6 7 8 9] # [10 11 12 13 14] # [15 16 17 18 19]] C=np.array([ [[2, 0], [3

我在一个名为
a
的二维数组中有值。 我有第二个数组,
C
,其中我有索引,它引用了
a
中的单元格。 因此,该数组的维数为
(M,N,2)

我想构造维度
(M,N)
的输出,它由
a
的值组成,这些值来自
C
中存储的索引

这是一种类似蟒蛇的方式:

a=np.arange(20)。重塑(-1,5)
印刷品(a)
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]
C=np.array([
[[2, 0], [3, 1]],
[[0, 0], [1, 4]],
[[2, 2], [1, 1]],
[[0, 0], [1, 1]],
])
output=np.array([[a[cell[0],cell[1]]表示行中的单元格,而[C]表示行中的单元格)
打印(输出)
# [[10 16]
#  [ 0  9]
#  [12  6]
#  [ 0  6]]
我想有一种更简单的集成电路方式,它会更优雅,但更重要的是,做同样的事情更高效

有什么想法吗


干杯

@Divakar:这确实是解决方案。 我太惊讶了。。。事件不知道这是有效代码。 非常感谢

输出=a[C[…,0],C[…,1]] >>>输出 数组([[10,16], [ 0, 9], [12, 6], [ 0, 6]])
a[C[…,0],C[…,1]]
?@Divakar我一直对Numpy的索引技巧感到惊讶…@Divakar请将此作为答案发布。