【问题标题】:How do you make an array of lists from seperate arrays then find most frequent value per lists with python?你如何从单独的数组中创建一个列表数组,然后使用 python 找到每个列表中最常见的值?
【发布时间】:2013-12-09 16:38:58
【问题描述】:

如果有以下三个数组:

array([ 0.,  1.,  1.,  1.,  0.])
array([ 0.,  1.,  0.,  1.,  1.])
array([ 1.,  0.,  1.,  1.,  1.])

我想将数组组合成每个元素的列表数组,然后找到每个列表的 模式(最常见的值),如下例所示:

第 1 步)array([0., 0., 1.], [1., 1., 0.], [1., 0., 1.], [1., 1., 1.], [0., 1., 1.])

第 2 步)array([0., 1., 1., 1., 1.])

如何在 Python 中做到这一点?

【问题讨论】:

  • 您是否安装了scipy

标签: arrays loops python-2.7 numpy


【解决方案1】:

你可以使用scipy.stats.mode:

>>> import scipy.stats
>>> a = np.array([ 0.,  1.,  1.,  1.,  0.])
>>> b = np.array([ 0.,  1.,  0.,  1.,  1.])
>>> c = np.array([ 1.,  0.,  1.,  1.,  1.])
>>> m = np.vstack([a,b,c])
>>> modes, counts = scipy.stats.mode(m)
>>> 
>>> modes
array([[ 0.,  1.,  1.,  1.,  1.]])

然后调用.squeeze().ravel(),如果你想回到一维对象。

【讨论】:

    猜你喜欢
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多