我有一些带有值的数组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]
没有意义。
答案 0 :(得分:2)
您快到了,您需要的是在上面花哨的索引:
Y = X[np.arange(len(I)),I]
这种索引告诉numpy在(i, I(i))
中选择条目X
。