从每一行的特定列取值

时间:2019-01-09 15:35:26

标签: arrays python-3.x numpy

我有一些带有值的数组X

[[0.3,0.4,0.5],
 [0.1,0.7,0.9],
.
.
.
[0.3,0.6,0.9]]

我有一个索引为I =[0,2,1,2,0,..]的数组。

我想根据数组X中的索引从数组I中获取每一行的值,就像在数组I中的第一个值为0一样,所以从第一行开始I中的in将从0列中取值0.3,依此类推。 有没有可能这样做而不循环?

我的想法: Y = X[:,I]没有意义。

1 个答案:

答案 0 :(得分:2)

您快到了,您需要的是在上面花哨的索引:

Y = X[np.arange(len(I)),I]

这种索引告诉numpy在(i, I(i))中选择条目X