简单的问题:如何获得矩阵的最常见值?
矩阵是一种特殊的二维数组,它通过运算保持其二维性质。
这是我整个实现的一个片段,所以我决定只向你展示与我的主要问题相关的重要部分:
import numpy as np
...
from src.labelHandler import LabelHandler
from collections import Counter
def viewData(filePathList, labelHandler=None):
...
c = Counter(a) #(1)
print(c) #(2)
b = np.argmax(c) #(3)
print(b) #(4)
...
输出将是:
{0.3: [(0, 0, 0), (0, 10, 0), (0, 11, 0), ...], 0.2: [(0, 18, 0), ...]}
Counter({0.3: 7435, 0.2: 6633, ...})
0
这也是我整个输出的一个片段。
重要的一行是带有 0 的最后一行。
问题似乎出在第 (3) 行。
b = np.argmax(c)
它只是打印出我在索引 0 中的最大值的位置。
但我想取回浮点值本身而不是索引。
我该如何解决这个问题?
提前致谢!
最佳答案
您可以将 scipy.stats
与 np.array.ravel()
一起使用来展平数组。这为您提供了模式和计数。
import numpy as np
from scipy import stats
A = np.random.randint(0, 9, (10, 10))
res = stats.mode(A.ravel())
# ModeResult(mode=array([4]), count=array([19]))
关于python - 返回矩阵/数组的最常见值(模式),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49558958/