numpy 数组中部分最大值的 pythonic 方式

标签 python numpy max

我想知道是否有一种快速的方法来计算 numpy 数组中的部分最大值。示例:

a = [1,2,3,4,5,6,7,8,9]

如果我们将零件尺寸固定为 3,我希望答案为:

b = [3,6,9]

其中3是a第一部分的最大值,[1,2,3],6是第二部分的最大值[4,5,6]等等..

最佳答案

尝试 reshape ,然后取最大值:

import numpy as np

a = np.array([1,2,3,4,5,6,7,8,9])
>>> a.reshape((len(a) / 3, 3)).max(axis=1)
array([3, 6, 9])

如果数组的长度不能被数字整除,你的问题需要更多的定义来说明你在这种情况下的意思。

编辑 下面评论中的@ajcr 展示了一种更好的 reshape 方式:

>>> a.reshape((-1, 3)).max(axis=1)

关于numpy 数组中部分最大值的 pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35253716/

相关文章:

mysql - 从表中的最大 ID 中选择最小日期

python - 如何抑制绘制树状图但仍然聚集在 seaborn 中?

python - 向 Pandas 数据透视表添加过滤器

python - Python 字典的内存高效替代方案

python - Numpy:从N个离散概率分布中的每一个中随机选择1个样本

python - 为什么 Pypy 添加 numpy 数组的速度较慢?

使用 NumPy 数据类型的 Python 字典查找速度

c++ - C++数组传递给具有大小的函数

python - 如何在 Fabric 命令中定位不同的主机

MYSQL - MAX() 返回错误的日期