请有人告诉我如何从嵌套数组中获取最频繁/模态数组?
例如:
a = np.array([[A, 8, 3, 0],[B, 8, 4, 0],[A, 8, 3, 0]])
结果应为[A,8、3、0],计数为2。
我对此问题进行了研究,但只找到了比较一维一个值而不是整个数组的解决方案。
还有可能获得第二和第三最频繁的数组吗?
先谢谢您
问候:)
答案 0 :(得分:0)
如果您不关心列表的顺序,则可以使用集合比较来查找最常见的元素,就像使用整数列表时一样。
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)`
答案 1 :(得分:0)
使用熊猫
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])
如果您打印,则可以找到所有频率。 HTH