假设我们有另一个numpy的数组的索引数组:快速矢量索引
import numpy as np
a = np.array([0, 3, 1])
b = np.array([0, 10, 20, 30, 40, 50, 60, 70])
我们可以使用数组a
为指标直接:
b[a] # np.array([0, 30, 10])
但是,如果阵列中有多于一个维度?例如,
a = np.array([[0, 2], [1, 3], [2, 4]])
# I want to get b[a] = np.array([[0, 20], [10, 30], [20, 40]])
numpy的索引不起作用,如果一个维数大于1,我们可以通过使用map
map(lambda x: b[x], a)
但是达到预期的效果,这是相当缓慢。对于一维情况,直接索引比使用map
快约10-100倍。
有没有办法更快地做到这一点?
'b [a]'会发生什么? – hpaulj
即使“a”是2D,“b [a]”也可以按照需要工作。你遇到了什么错误? – jakevdp