gpt4 book ai didi

python - NumPy ND 数组中出现频率最高的元素

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:27 30 4
gpt4 key购买 nike

我正在尝试查找并打印矩阵中最常见的数字,如果可能的话使用 numpy。

此列表已给出(使用 numpy.matrix(list) 使其成为矩阵):

import numpy as np
list = [[2,4,1,6,3], [2,4,1,8,4], [6,5,4,3,2], [6,5,4,3,4], [1,2,3,4,5]]
matrix=np.matrix(list)

对于这个例子我应该得到:4(因为它是最常见的数字)

最佳答案

给定:

>>> import numpy as np
>>> LoL = [[2,4,1,6,3], [2,4,1,8,4], [6,5,4,3,2], [6,5,4,3,4], [1,2,3,4,5]]
>>> matrix=np.array(LoL)
>>> matrix
[[2 4 1 6 3]
[2 4 1 8 4]
[6 5 4 3 2]
[6 5 4 3 4]
[1 2 3 4 5]]

你可以这样做:

>>> np.argmax(np.bincount(matrix.flat))
4

或者,

u, c = np.unique(your_lst, return_counts=True)
u[c.argmax()]
# 4

如果您想在没有 numpy 或任何导入的情况下执行此操作来计算列表列表中最频繁的条目,您可以使用字典来计算来自正在展平列表列表的生成器的每个元素:

cnts={}
for e in (x for sl in LoL for x in sl):
cnts[e]=cnts.get(e, 0)+1

然后按最频繁排序:

>>> sorted(cnts.items(), key=lambda t: t[1], reverse=True)
[(4, 7), (2, 4), (3, 4), (1, 3), (5, 3), (6, 3), (8, 1)]

或者,如果您只想要最大的,只需使用 max:

>>> max(cnts.items(), key=lambda t: t[1])

关于python - NumPy ND 数组中出现频率最高的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53949062/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com