在python/numpy中通过argmin()或min()查找前三个值的索引而不改变list?

2024-09-27 07:26:37 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个名为summerrors的列表,它有16000行和1列,这个列表已经预先排序为5个不同的集群。我要做的是对每个集群的列表进行切片,并在每个切片中找到最小值的索引。

但是,我只能使用argmin()找到第一个最小索引。我不认为我可以删除这个值,因为否则它会将切片移到另一个位置,而索引是我恢复原始ID所必须的。有人知道如何让argmin()为最低的三个值输出索引吗?

或者也许是一种更理想的方法?也许我应该分配身份证号码,但我觉得也许有一个更优雅的方法。


Tags: 方法id列表排序集群切片号码身份证
2条回答

Numpy包含一个^{}函数,该函数将返回所有索引。如果我正确理解您的要求,您应该能够:

minidx = []
for cluster in sumErrors:
    minidx.append(np.argsort(cluster)[:3])

numpy.argpartition(cluster, 3)会更有效。

相关问题 更多 >

    热门问题