gpt4 book ai didi

python - 查找 Numpy 数组中每 n 个实例的最大值

转载 作者:行者123 更新时间:2023-12-02 02:19:22 25 4
gpt4 key购买 nike

我有一个大文件,其中包含每秒的风速和风向。我已将每个元素存储到一个 numpy 数组中。例如,风速为ws=(7,8,8.5,8,9.5)。我想用最大 1 分钟风速填充另一个数组,因此每 60 个实例,我需要拉动最大值。我已经尝试过:

gust = np.full(len(ws), 0) 
indices = sig.argrelmax(ws)
gust[indices] = ws[indices]

他任意提取最大值并将它们成功输入到数组中,同时保持它们在 ws 数组中的相同索引,但是 1)我需要它以 60 个批处理(1-60、61-120、 ...ETC)。 2)它将数字转换为整数,我需要 float 保持 float 。

最佳答案

如果元素数量是 60 的倍数,您可以 reshape 数组,然后计算第二个维度上的最大值:

ws.reshape(-1, 60).max(axis=1)

如果我们使用随机数据,我们会得到:

>>> ws = np.random.randn(7*60)
>>> ws.reshape(-1, 60).max(axis=1)
array([2.81337727, 2.30824229, 2.31009178, 2.5588816 , 3.41887582,
2.21686554, 2.10892784])

如果测量次数不是 60 的倍数,您可以用零“填充”(因为风速最小为 0):

# padding zeros at the end
ws2 = np.append(ws, (0,) * ((60-len(ws))%60))
ws2.reshape(-1, 60).max(axis=1)

关于python - 查找 Numpy 数组中每 n 个实例的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61255208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com