我有一个较小的数组:
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)]
但它没有产生我正在寻找的答案。
答案 0 :(得分:4)
这是一种方式:
searchsorted()
请注意,为了以默认顺序获取预期索引,传递给grid.formedit.js
的第二个数组应该包含第一个数组的公共项。
答案 1 :(得分:1)
您可以从A
和Aval
构建字典,然后循环浏览A2
并找出相应的值:
dic = dict(zip(A, Aval))
[dic.get(a) for a in A2 if dic.get(a) != None]
# [10, 35, 10, 35, 40, 40, 40, 45]