python使用较小的2D数组与另一个更大的数组进行映射

时间:2016-07-14 20:00:21

标签: python numpy

我有一个较小的数组:

A = np.array([2013, 2014, 2015])
Aval = np.array([14, 10, 35])

我有另一个阵列:

A2 = np.array([2013, 2014, 2015, 2013, 2014, 2015, 2013, 2013, 2013])

我想创建A2val,以便:

Arval = np.array([14, 10, 35, 14, 10, 35, 14, 14, 14])

所以,我试图使用数组A中的值映射到A2的元素并生成A2val的扩展版本

1 个答案:

答案 0 :(得分:2)

您可以使用np.searchsorted创建映射索引,然后索引到Aval以选择其中的元素,就像这样 -

Aval[np.searchsorted(A,A2)]

如果A尚未排序,我们需要使用可选参数sorter,如此 -

Aval[np.searchsorted(A,A2,sorter=A.argsort())]