使用一个numpy数组作为另一个数组的第二个DUMP的索引?例如,我有两个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似乎不是解决我问题的正确办法。但是,我可以用np.choose转置A,np.choose(B.ravel(), A.T)但还有其他更好的解决办法吗?
3 回答
杨魅力
TA贡献1811条经验 获得超6个赞
NumPy's purely integer array indexing
-
A[np.arange(A.shape[0]),B.ravel()]
In [57]: AOut[57]: array([[0, 1], [2, 3], [4, 5]])In [58]: BOut[58]: array([[1], [0], [1]])In [59]: A[np.arange(A.shape[0]),B.ravel()]Out[59]: array([1, 2, 5])
B
1D
.ravel()
.
In [186]: AOut[186]: array([[0, 1], [2, 3], [4, 5]])In [187]: BOut[187]: [1, 0, 1]In [188]: A[np.arange(A.shape[0]),B]Out[188]: array([1, 2, 5])
慕婉清6462132
TA贡献1804条经验 获得超2个赞
B
np.arange
添加回答
举报
0/150
提交
取消