You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用for循环计算分类数据集滑动窗口标准差的问题求助

滑动窗口标准差计算修正方案

现有代码问题

  • 循环内重复初始化listt1,导致最终输出为空
  • 标准差计算结果错误追加到了存储均值的listt列表,没有存入标准差结果列表
  • 未定义std计算函数,也未引入第三方库的标准差方法,无法得到正确计算结果

与自定义均值逻辑一致的实现方案

你之前的均值是手动实现的,这里对应手动实现标准差计算函数即可,默认提供总体标准差(除以窗口长度n)实现,如果你需要样本标准差,把除数改成len(dataset)-1即可:

# 自定义标准差计算函数,和你自定义mean的逻辑对齐
def std(dataset):
    avg = sum(dataset)/len(dataset)
    variance = sum((x - avg)**2 for x in dataset) / len(dataset)
    return variance ** 0.5

# 修正后的标准差计算逻辑
listt1 = []
# 如果你不需要保留之前的均值,可以重新初始化listt避免结果混淆
# listt = []
for i in range(len(x_)):
    globals()['a'+str(i)] = list(x_[i])
    # 可以保留均值计算,也可以删掉,按需调整
    # listt.append(mean(x_[i]))
    listt1.append(std(x_[i]))
print(listt1)

基于numpy的快捷实现方案

因为你已经把窗口结果转成了numpy数组x_,可以直接用numpy的向量化操作完成计算,不需要写循环,效率更高:

# 计算每个窗口的总体标准差,ddof=0对应总体标准差,ddof=1对应样本标准差
import numpy as np
listt1 = np.std(x_, axis=1, ddof=0).tolist()
print(listt1)

内容的提问来源于stack exchange,提问作者sanaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:06:03