2024-04-26 12:17:27 发布
网友
假设我有多个这样的numpy数组:[1, 2, 4, 7, 1, 4, 6, 8, 1, 8, 2, 5]
[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}
有没有比简单地在数组上循环、计数项目并将它们存储在字典中更快的方法呢
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}
Numpy的智慧在于,它具有以下功能:
它不会返回字典,但您可以轻松地将结果转换为字典
您可以使用count进行此操作:
这肯定会奏效的 您将找到更多信息here
我认为下面的方法是最简单的
产出将是 计数器({1:3,2:2,4:2,8:2,7:1,6:1,5:1})
你可以用熊猫做这个
相关问题 更多 >
编程相关推荐