请问有人可以告诉我如何从嵌套数组中获取最频繁/模态数组吗?
例如:
a = np.array([[A, 8, 3, 0],[B, 8, 4, 0],[A, 8, 3, 0]])
结果应为 [A, 8, 3, 0],计数为 2。
我对这个问题进行了研究,但只找到了比较一个维度的一个值而不是整个数组的解决方案。
是否有可能获得第二和第三最频繁的阵列?
提前谢谢你,
问候:)
使用熊猫
import pandas as pd
a = np.array([['A', 8, 3, 0],['B', 8, 4, 0],['A', 8, 3, 0]])
df=pd.DataFrame(a)
df=df.reset_index().groupby([0,1,2,3]).count().sort_values('index',ascending=False).reset_index()
np.array(df.iloc[0,0:4])
如果打印,您可以找到所有频率。呵呵
如果您不关心列表的顺序,那么您可以使用集合比较来查找最常见的元素,就像您有一个整数列表一样。
L = [['A', 8, 3, 0],['B', 8, 4, 0],['A', 8, 3, 0]]
counter = 0
set = L[0]
for i in L:
amount_times = L.count(i)
if amount_times > counter:
counter = amount_times
set = i
print (set)
print (counter)`