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

时间:2018-10-04 20:44:31

标签: python arrays nested modal-dialog

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

例如:

a = np.array([[A, 8, 3, 0],[B, 8, 4, 0],[A, 8, 3, 0]])

结果应为[A,8、3、0],计数为2。

我对此问题进行了研究,但只找到了比较一维一个值而不是整个数组的解决方案。

还有可能获得第二和第三最频繁的数组吗?

先谢谢您

问候:)

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