获取列表中给定项的计数(不使用numpy)

2024-04-26 14:40:31 发布

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

我试图找出如何计算以下数组中每个唯一数字的频率,范围从1到17:

x3 = [ 8 12 10  9  6  6  5 11  9 10  4 12 10  7  7  7  7  9  8  7  9  6  7  8
  8 10  7  9  9  5  9  7  5 12 12 10  7  6  9  8  6  8  5 11  7  9  7  9
  9  7 12 10 12 11  9 11  6  7  5  8  8  7 10  8  7  9  6 10  6 13]

使用numpy,这是由[np.equal(x3, i).sum() for i in range (1,18)]完成的

没有numpy的最佳替代方法是什么


Tags: 方法innumpyfornprange数字数组
2条回答

你也可以使用字典

numList = [1,2,3,1,2,3,4,5,3,4,5,6,7,8,7,6,2]
freq = dict()
for num in numList:
    if num in freq.keys():
        freq[num] += 1
    else:
        freq[num] = 1

print(freq)
{1: 2, 2: 3, 3: 3, 4: 2, 5: 2, 6: 2, 7: 2, 8: 1}

标准集合模块可以做到这一点

import collections
x3 = [1,1,2,2]
counts = collections.Counter(x3)
print(counts)

相关问题 更多 >