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请将此作为答案发布。