在Python中如何计算二维数组中的出现次数?

2024-04-26 12:40:36 发布

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

代码启动

from collections import Counter
import numpy as np

List = [[7,12,17,26,29,31],\
      [4,9,11,17,26,27],\
      [5,6,8,21,31,33],\
      [3,17,21,23,27,28],\
      [4,10,18,19,25,27],\
      [5,8,13,19,27,28],\
      [15,16,21,22,27,33],\
      [11,12,13,14,18,33],\
      [2,8,10,18,20,33],\
      [2,7,10,20,27,29],\
      ]

for i in List:
print(i, List.count(i), (List.count(i)/len(List)))

代码结束

结果

^{pr2}$

问题

我怎么能得到这样的结果?按一行计算每个元素的出现次数。在

2 2 0.2
3 1 0.1
4 2 0.2
5 1 0.1
...
33 4 0.4

我尝试了许多不同的方法,但总是得到相同的结果。 由于我是Python的新手,我希望有人能帮我解决这个问题。 顺便_说_一_句_ , _如果_有_任何_一_本_书_解释_openpyxl_ , _列表_操作_和_计算_科学_ , _请_帮助_推荐_ 。_在

事先非常感谢。在


Tags: 代码infromimportnumpyforlenas
1条回答
网友
1楼 · 发布于 2024-04-26 12:40:36

您现在所做的是计算numpy数组中每一行的出现次数(作为一个列表)。因为它们只出现在你数到1的时候。在

首先我们要得到数组中出现的所有数字:

unique = np.unique(List)

然后我们可以循环这些行并计算它们出现的频率:

^{pr2}$

最后,如果要打印结果:

for k,v in counts.items():
    print(k,v,v/len(List))

相关问题 更多 >