python numpy数组搜索

爱莎

仍在学习有关如何操作numpy数组的知识,我们将不胜感激。

这是布局:

col1 coln index   cid  d1  d2  d3  d4
some vals  0       1    some values
           1       2   
           2       0
           3       1
           4       3
           5       1  
           6       0
           7       2

我想找到与每个cid相关联的最低索引,并将其存储在列表中。例如,对于cid 1,它将为0;对于cid 0,它将为2;对于cid,它将为1,依此类推。

做这个的最好方式是什么?

提前致谢!

航空工程师

您可以使用类似以下内容的方式在numpy中进行操作。遍历每个唯一的CID并获得True列表理解中一个的索引np.unique()将为您提供所有CID值。np.argmax将索引返回到数组中的最大值。如果有多个相同的对象,则返回第一个匹配项。因此,它将True为每个比较返回第一个索引

import numpy as np
cid = np.array([1,2,0,1,3,1,0,2])
first_idx = [np.argmax(cid == x) for x in np.unique(cid)]
print(first_idx)

结果:[2,0,1,4]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章