【发布时间】:2019-03-03 02:31:33
【问题描述】:
我有一个值数组以及另一个我想为其创建索引的数组。 例如:
value_list = np.array([[2,2,3],[255,243,198],[2,2,3],[50,35,3]])
key_list = np.array([[2,2,3],[255,243,198],[50,35,3]])
MagicFunction(value_list,key_list)
#result = [[0,1,0,2]] which has the same length as value_list
我在研究后在网上看到的解决方案并不完全符合我的要求,我相信,任何帮助将不胜感激! 我有这个提供结果的蛮力代码,但我什至不想在我的实际数据大小上测试它
T = np.zeros((len(value_list)), dtype = np.uint32)
for i in range(len(value_list)):
for j in range(len(key_list)):
if sum(value_list[i] == key_list[j]) == 3:
T[i] = j
【问题讨论】:
-
与其做
sum(value_list[i] == key_list[j]) == 3,不如做(value_list[i] == key_list[j]).all()。这两者都可以推广到任何大小,而不仅仅是 3,并且它更清楚代码的功能是什么。您也可以在T[i] = j之后添加break以节省一些时间。
标签: python image numpy indexing