我想知道是否有一种快速的方法来计算 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/