我有一个较小的数组:
A = np.array([2011, 2014, 2015, 2016, 2017])
Aval = np.array([14, 10, 35, 40, 45])
我有另一个数组:
A2 = np.array([2013, 2014, 2015, 2014, 2015, 2016, 2016, 2016, 2017])
我想这样创建 A2val:
Arval = np.array([10, 35, 10, 35, 40, 40, 40, 45])
因此,我尝试使用数组 A 中的值映射到 A2 的元素并生成 A2val 的扩展版本
请注意,2011 年出现在 A 中,2013 年出现在 A2 中,但分别不在 A2 和 A 中。我可以使用另一个线程中建议的以下内容:
Aval[np.searchsorted(A,A2)]
但它并没有产生我正在寻找的答案。
请您参考如下方法:
这是一种方法:
>>> Aval[np.searchsorted(A, A2[np.nonzero(np.in1d(A2, A))[0]])]
array([10, 35, 10, 35, 40, 40, 40, 45])
请注意,为了以默认顺序获取预期索引,您传递给 searchsorted() 的第二个数组应该包含第一个数组的公共(public)项。
