示例数据:
array(
[[ 1., 1.],
[ 2., 1.],
[ 0., 1.],
[ 0., 0.],
[ 0., 0.]])
具有期望的
结果>>> [0.,0.]
ie)最常见的一对。
看似不起作用的方法:
使用statistics
作为numpy数组是不可用的。
使用scipy.stats.mode
作为返回每个轴的模式,例如)对于我们的示例,它给出了
mode=array([[ 0., 1.]])
答案 0 :(得分:8)
您可以使用pauseOnFocus: false,
pauseOnHover: false
函数{/ 1}}使用numpy
高效执行此操作:
unique
返回:pairs, counts = np.unique(a, axis=0, return_counts=True)
print(pairs[counts.argmax()])
答案 1 :(得分:2)
通过标准库的一种方法是使用collections.Counter
。
这为您提供了最常见的配对和计数。在[0]
上使用Counter.most_common()
索引来检索最高计数。
import numpy as np
from collections import Counter
A = np.array(
[[ 1., 1.],
[ 2., 1.],
[ 0., 1.],
[ 0., 0.],
[ 0., 0.]])
c = Counter(map(tuple, A)).most_common()[0]
# ((0.0, 0.0), 2)
唯一的复杂因素是您需要转换为tuple
,因为Counter
只接受可散列对象。