gpt4 book ai didi

python - Numpy 数组 15 分钟值 - 每小时平均值

转载 作者:行者123 更新时间:2023-11-28 22:34:47 24 4
gpt4 key购买 nike

我有以下情况:

一个 numpy 数组

x = np.array([12,3,34,5...,])

其中每个条目对应一个模拟结果(时间步长 15 分钟)。

现在我需要将每小时平均值(前 4 个元素的平均值,然后是下 4 个元素的平均值,等等)存储在一个新的 numpy 数组中。有没有一个非常简单的方法来完成这个?

最佳答案

要处理大小可能不是 4 的倍数的数组,将 x 复制到一个新数组 tmp 中,其大小是 4 的倍数:

tmp = np.full((((x.size-1) // 4)+1)*4, dtype=float, fill_value=np.nan)
tmp[:x.size] = x

空值由 nan 表示。然后您可以 reshape 并使用 nanmean 计算每行的平均值。 np.nanmeannp.mean 类似,只是它忽略了 nan:


x = np.array([12,3,34,5,1])
tmp = np.full((((x.size-1) // 4)+1)*4, dtype=float, fill_value=np.nan)
tmp[:x.size] = x
tmp = tmp.reshape(-1, 4)
print(np.nanmean(tmp, axis=1))

打印

[ 13.5   1. ]

如果你有pandas安装,然后你可以构建一个时间序列并按时间间隔分组:

import numpy as np
import pandas as pd
x = np.array([12,3,34,5,1])
s = pd.Series(x, index=pd.date_range('2000-1-1', periods=x.size, freq='15T'))
result = s.groupby(pd.TimeGrouper('1H')).mean()
print(result)

产量

2000-01-01 00:00:00    13.5
2000-01-01 01:00:00 1.0
Freq: H, dtype: float64

关于python - Numpy 数组 15 分钟值 - 每小时平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744353/

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