在保持'NaN'值的同时获得数据的移动平均值,可以通过以下步骤实现:
以下是一个示例代码,用Python语言实现上述步骤:
import numpy as np
def moving_average(data, window_size):
ma = np.full(len(data), np.nan) # 创建与原始数据序列相同长度的数组,初始值为NaN
for i in range(window_size-1, len(data)):
window = data[i-window_size+1:i+1] # 获取时间窗口内的数据
if np.isnan(window).any(): # 如果时间窗口内存在NaN值
ma[i] = np.nan # 移动平均值设置为NaN
else:
ma[i] = np.mean(window) # 计算移动平均值
return ma
# 示例数据
data = [1, 2, np.nan, 4, 5, 6, np.nan, 8, 9, 10]
window_size = 3
# 计算移动平均值
ma = moving_average(data, window_size)
print(ma)
在这个示例中,我们使用了NumPy库来处理数组和NaN值。函数moving_average
接受原始数据序列和时间窗口大小作为参数,并返回移动平均值数组。在示例数据中,我们有一些NaN值,计算得到的移动平均值数组中对应的位置也是NaN。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云