Python 如何以高效的方式执行此numpy数组操作?

Python 如何以高效的方式执行此numpy数组操作?,python,numpy,Python,Numpy,我是python新手 如果我有一个(m x n)数组,我怎么才能找到哪一列具有某个特定值(如1)的最大重复次数?有没有比编写迭代循环更简单的操作呢。欢迎使用python和numpy。首先检查数组中的哪些值是1,然后沿着每列计算,最后取argmax,就可以得到最长为1的列。在代码中,它看起来像这样: >>> import numpy as np >>> (m, n) = (4, 5) >>> a = np.zeros((m, n)) >&

我是python新手


如果我有一个(m x n)数组,我怎么才能找到哪一列具有某个特定值(如1)的最大重复次数?有没有比编写迭代循环更简单的操作呢。

欢迎使用python和numpy。首先检查数组中的哪些值是1,然后沿着每列计算,最后取argmax,就可以得到最长为1的列。在代码中,它看起来像这样:

>>> import numpy as np
>>> (m, n) = (4, 5)
>>> a = np.zeros((m, n))
>>> a[2, 3] = 1.
>>>
>>> a_eq_1 = a == 1
>>> repetitions = a_eq_1.sum(axis=0)
>>> np.argmax(repetitions)
3
或者更紧凑地说:

>>> np.argmax((a == 1).sum(axis=0))
3

令人惊讶、理解力强、语言确实如此:)