【问题标题】:Return most common value (mode) of a matrix / array返回矩阵/数组的最常见值(模式)
【发布时间】:2018-09-08 13:58:14
【问题描述】:

简单问题:如何获得矩阵的最常见值?

矩阵是一种特殊的二维数组,通过运算保持其二维性质。

这是我整个实现的一个简单介绍,所以我决定只向您展示与我的主要问题相关的重要部分:

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

这也是我整个输出中的一个 sn-p。

重要的一行是最后一行带 0。 问题似乎出在第 (3) 行。

b = np.argmax(c)

它只是打印出我在索引 0 中的最大值的位置。 但我想取回浮点值本身而不是索引。

我该如何解决这个问题?

提前致谢!

【问题讨论】:

标签: python arrays python-3.x numpy counter


【解决方案1】:

您可以将scipy.statsnp.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]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    相关资源
    最近更新 更多