python - Python在数组中找到最常见的值
问题描述
import numpy as np
x = ([1,2,3,3])
y = ([1,2,3])
z = ([6,6,1,2,9,9])
(只有正值)在每个数组中,我需要返回最常见的值,或者,如果值出现相同的次数 - 返回最小值。这是家庭作业,我只能使用 numpy。
输出:
f(x) = 3,
f(y) = 1,
f(z) = 6
解决方案
对于一个 numpy 的独家解决方案,这样的事情会起作用:
occurances = np.bincount(x)
print (np.argmax(occurances))
如果列表中有负数,上述方法将不起作用。因此,为了解决这种情况,请使用:
not_required, counts = np.unique(x, return_counts=True)
x=np.array(x)
if (x >= 0).all():
print(not_required[np.argmax(counts)])
else:
print(not_required[np.argmax(counts)])
推荐阅读
- github - How can I create relative links from my MarkDown to GitHub raw files?
- python - 如何在 html 烧瓶视图中将字符串转换为整数
- jquery - Making div element dynamic with another function
- python - pandas DataFrame:用对应列的中位数替换nan值
- python - Python 3 计数器忽略少于 x 个字符的字符串
- c++ - 指针可以用于访问内存中的任意区域吗?
- excel - Delete used range from every worksheet in workbook
- react-native - 如何在桌面重定向网站中获取与 branch.io 深层链接相关的数据?
- c++ - LeetCode 65: Valid Number (C++)
- r - 如何使用带有 rtweet 包的 lookup_users() 检索超过 90,000 个用户的数据?