如何在Numpy中用另一个数组的行替换一个数组的元素

时间:2018-02-16 02:56:28

标签: numpy

我有两个可变长度和内容的数组(简化示例):

A = np.array([[0.25, 0.25], [0.25, 0.75], [0.75, 0.25], [0.75, 0.75], [0.8, 0.9] ...]) 
B = np.array([0, 1, 2, 4, 0, 3, 3, ...])

获取数组的最佳/最快方法是什么,其中B的每个元素都被替换为A中的相应行(B作为索引),以便结果为:

C = [[0.25, 0.25], [0.25, 0.75], [0.75, 0.25], [0.8, 0.9], [0.25, 0.25], [0.75, 0.75], [0.75, 0.75], ...]

我在某种程度上不知所措(仍然是一个有问题让我头晕目眩的初学者)。

编辑/附录:忘记提及:我想避免循环,因为数组很大且时间很关键。

1 个答案:

答案 0 :(得分:1)

您可以使用direct indexing

C = A[B, :]

结果

[[ 0.25  0.25]
 [ 0.25  0.75]
 [ 0.75  0.25]
 [ 0.8   0.9 ]
 [ 0.25  0.25]
 [ 0.75  0.75]
 [ 0.75  0.75]]

IDEOne Link