【发布时间】:2016-06-18 13:54:28
【问题描述】:
例如,我有两个 numpy 数组,
A = np.array(
[[0,1],
[2,3],
[4,5]])
B = np.array(
[[1],
[0],
[1]], dtype='int')
我想从A的每一行中提取一个元素,并且该元素由B索引,所以我想要以下结果:
C = np.array(
[[1],
[2],
[5]])
我试过A[:, B.ravel()],但它会广播B,而不是我想要的。还查看了np.take,似乎不是解决我的问题的正确方法。
但是,我可以通过转置A 来使用np.choose,
np.choose(B.ravel(), A.T)
还有其他更好的解决方案吗?
【问题讨论】:
-
@unutbu 这里有点不同,因为我们在每行选择一个元素,而不是在链接的上一个问题中每行选择多个元素。
-
-
@unutbu,你链接的答案使用
np.take,我认为它不能解决我的问题?