使用一個(gè)numpy數(shù)組作為另一個(gè)數(shù)組的第二個(gè)DUMP的索引?例如,我有兩個(gè)numpy數(shù)組,A = np.array(
[[0,1],
[2,3],
[4,5]])B = np.array(
[[1],
[0],
[1]], dtype='int')的每一行中提取一個(gè)元素。A,而該元素的索引是B,所以我希望得到以下結(jié)果:C = np.array(
[[1],
[2],
[5]])我試過(guò)A[:, B.ravel()],但它會(huì)播放B不是我想要的。也調(diào)查了np.take似乎不是解決我問(wèn)題的正確辦法。但是,我可以用np.choose轉(zhuǎn)置A,np.choose(B.ravel(), A.T)但還有其他更好的解決辦法嗎?
3 回答

楊魅力
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
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])

達(dá)令說(shuō)
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
C = np.array([A[i][j] for i,j in enumerate(B)])

慕婉清6462132
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
B
np.arange
添加回答
舉報(bào)
0/150
提交
取消