关于numpy:python 4.7:如何计算数组中特定值的频率

Python 4.7: How to count the frequency of specific value in array

本问题已经有最佳答案,请猛点这里访问。

基本上我有一个包含250个元素的列表,其中一些是1,一些是2,一些是3。如何获取表示"1"数的变量?


这在python中本地存在

1
2
3
4
from collections import Counter

A = [1,1,1,1,1,2,2,2,3,3,3,3,3,4,4,4,4]
B = Counter(A)

输出Counter({1: 5, 3: 5, 4: 4, 2: 3})


我想在Python4.7中仍然是这样。

不开玩笑,这在Python2.7(和3等)中有效。

使用计数():

1
2
3
4
5
6
7
your_list = [1,1,2,3,4,5,6,7,8]
distinct_values = set(your_list)
if len(distinct_values) == len(your_list)
    print('All values have a tf count of 1')
else:
    for distinct_value in distinct_values:
        print('%s n occurences: %s' % (distinct_value, str(your_list.count(distinct_value))))

在中使用(由@nfn neil通过注释提供的解决方案):

1
2
3
4
5
6
7
8
your_list = [1,1,2,3,4,5,6,7,8]
di = {}
for item in your_list:
    if item in di:
        di[item] += 1
    else:
        di[item] = 1
print(di)

运行两个变体300次的基准测试,列出50万个项目:

使用ou-in的运行时间为18.31200000362秒。

使用计数的运行时间花费了743.9941547110秒完成

基准代码:

网址:https://pastebin.com/dws8uh7c