使用numpy中的查找值进行数组操作
以下数组值对应于以下查找值:使用numpy中的查找值进行数组操作,numpy,Numpy,以下数组值对应于以下查找值: lookup = np.array([60, 40, 50, 70, 90]) a = np.array([1, 2, 1, 4, 3, 2, 4, 9, 1]) b = np.array([2, 1, 2, 3, 3, 4, 9, 2, 1]) c = np.array([4, 2, 1, 4, 4, 1, 4, 4, 9]) 这是我必须做的 1 --> 60 2 --> 40 3 --> 50 4 --> 70 9 --> 90
lookup = np.array([60, 40, 50, 70, 90])
a = np.array([1, 2, 1, 4, 3, 2, 4, 9, 1])
b = np.array([2, 1, 2, 3, 3, 4, 9, 2, 1])
c = np.array([4, 2, 1, 4, 4, 1, 4, 4, 9])
这是我必须做的
1 --> 60
2 --> 40
3 --> 50
4 --> 70
9 --> 90
最高为70
所以,结果的第一个元素是4
这样,
预期结果=数组([4,1,…,9])
解决此类问题的更好方法是什么?这里有自定义索引,因此需要设置一个字典,用查找值替换自定义索引,如下所示:
index_map={1:60,2:40,3:50,4:70,9:90}
然后,我们使用d
中索引的实际lookup
值创建一个临时NumPy数组:
temp=np.array([index_map[int(x)]表示np.nditer(d)]中的x。重塑(d.shape)
因此,我们可以重新使用(选项1):
rows=temp.argmax(0)
打印(d[行,np.arange(d.shape[1]))
输出:
[41449]
预期结果是什么?你如何获得它?“你必须对值进行排序吗?”Ardweaden在和一个同时被删除的问题中,提到了最大值,但所有问题都不清楚。
array 1st column elements lookup value
a 1 --> 60
b 2 --> 40
c 4 --> 70