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))
>>> 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

关于python - 我怎样才能有效地进行这个 numpy 数组操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13464274/

相关文章:

python-3.x - 如何计算列中连续的1并获得每组的最大计数

使用 SQLITE3 数据计算标准差的 Python 代码

python - 创建 RSA SHA-256(DNSSEC 有效) key ?

在队列为空之前调用join时的Python 3多处理队列死锁

python - 将 pandas 字符串列与缺失值组合

pandas - 按顺序标记索引到重复的 DataFrame 索引

python - 如何抓取与特定期刊/文章论文的每位教授相关的从属关系

python - 如何在 python 的极坐标图中显示笛卡尔系统?

python - 使用 2 个索引列表对 2D Numpy 数组进行索引

Python numpy 数组元素不改变值