(Python)如何获取数组中的第一个/第二个/第三个模态数组?



请问有人可以告诉我如何从嵌套数组中获取最频繁/模态数组吗?

例如:

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)`

相关内容

最新更新