python - 在numpy矩阵中获取每行的多数元素

标签 python arrays numpy matrix

有没有一种快速的方法(所以没有 for 循环)在 numpy 数组中找到每行的多数元素并从中创建一个新数组?

例如,如果您有以下 numpy 数组:

X = 
[[ 1.  1.  1.]
 [ 1.  0.  1.]
 [ 1.  0.  1.]
 [ 1.  1.  1.]
 [ 1.  0.  1.]
 [ 1.  0.  1.]
 [ 0.  0.  0.]
 [ 1.  1.  1.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

你可以执行 get_majority(X),这将输出

[ 1.  1.  1.  1.  1.  1.  0.  1.  0.  0.  0.]

我尝试通过遍历矩阵并使用 collections 中的 Counter 来做到这一点,但这对于大型矩阵来说非常慢,所以我想找到一个向量化的方法。

最佳答案

你可以使用 Scipy's mode -

from scipy.stats import mode

mode(X, axis=-1)[0]

关于python - 在numpy矩阵中获取每行的多数元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841969/

相关文章:

Cuda 用 2D block 替换 double

java - 如何将资源数组和普通数组绑定(bind)到一个数组中?

python - 将 numpy 数组转换为 CSV 字符串并将 CSV 字符串转换回 numpy 数组

python - 如何在for循环中合并DataFrame?

Python 记录到标准输出和 StringIO

Python telnet连接成功

python - 使用 libtorrent-python 下载 Torrent

安装 ez_setup.py 时出现 Python 错误 "could not create SSL/TLS secure channel"

javascript - 在javascript中将字符串转换为对象数组的最佳方法?

用于出版质量图的 Python Pylab pcolor 选项