我有两个可变长度和内容的数组(简化示例):
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], ...]
我在某种程度上不知所措(仍然是一个有问题让我头晕目眩的初学者)。
编辑/附录:忘记提及:我想避免循环,因为数组很大且时间很关键。
答案 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]]