Numpy对数组中的项进行计数并存储在字典中

2024-04-26 12:17:27 发布

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

假设我有多个这样的numpy数组:[1, 2, 4, 7, 1, 4, 6, 8, 1, 8, 2, 5]

我想计算每个项目在数组中出现的次数,并将结果存储在字典中:

{1: 3, 2: 2, 3: 0, 4: 2, 5: 1, 6: 1, 7: 1, 8: 2}

有没有比简单地在数组上循环、计数项目并将它们存储在字典中更快的方法呢


Tags: 项目方法numpy字典数组次数计数
3条回答

Numpy的智慧在于,它具有以下功能:

np.unique(x, return_counts=True)

它不会返回字典,但您可以轻松地将结果转换为字典

您可以使用count进行此操作:

MyList = [1, 2, 4, 7, 1, 4, 6, 8, 1, 8, 2, 5]
my_dict = {i:MyList.count(i) for i in MyList}
print(my_dict)

这肯定会奏效的 您将找到更多信息here

我认为下面的方法是最简单的

from collections import Counter
MyList = [1, 2, 4, 7, 1, 4, 6, 8, 1, 8, 2, 5]
print(Counter(MyList))

产出将是 计数器({1:3,2:2,4:2,8:2,7:1,6:1,5:1})

你可以用熊猫做这个

>>> import pandas as pd
>>> a = pd.Series([1, 2, 4, 7, 1, 4, 6, 8, 1, 8, 2, 5])
>>> a.value_counts().to_dict()
{1: 3, 8: 2, 4: 2, 2: 2, 7: 1, 6: 1, 5: 1}

相关问题 更多 >