![](/img/trans.png)
[英]How to set values in a 2d numpy array given 1D indices for each row?
[英]2D to 1D numpy array with indices of column for each row
我正在尝试为矩阵中的每一行索引一列。
假设我有一个形状为(n,m)
的 numpy 数组A
。
我还有一个 numpy 数组B
,其形状(n,)
包含 0 到 m 之间的整数,因此它们可以用作A
的第二轴的索引。
我想获得一个 numpy 数组C
,其形状为(n,)
, C[i] = A[i,B[i]]
,因此A
每一行都会根据B
中的索引产生一个值。
当然,我可以在 for 循环或列表理解中使用最后一个表达式,但是我将如何使用 numpy 的效率来做到这一点?
我的第一个直觉是C = A[:,B]
但这显然会产生其他东西。 (形状(n,n)
)
你很接近,试试:
C = A[range(len(B)), B]
这应该产生C[i] = A[i,B[i]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.