m0_60186237 2022-08-06 09:26 采纳率: 0%
浏览 84

关于#python splrep()函数#的问题,如何解决?

python使用splrep()函数报错

def data_std(vector_raw):  # 输入list类型
    # 初始数据处理,把vector_raw
    x_raw = np.linspace(1, 1000, len(vector_raw))
    x_new = np.linspace(1, 1000, 1000)  # 1-10000中定义均匀的1000个点

    print(x_raw)
    tck = interpolate.splrep(x_raw, vector_raw)  # 点对应vector_raw
    vector_new = interpolate.splev(x_new, tck)  # 插入1000个节点

    return vector_new

报错内容

Traceback (most recent call last):
  File "D:/task2022(1)/task/task1.py", line 149, in <module>
    tmp = data_std(list(np.loadtxt(f)))
  File "D:/task2022(1)/task/task1.py", line 29, in data_std
    tck = interpolate.splrep(x_raw, vector_raw)  # 点对应vector_raw
  File "D:\task2022(1)\task\venv\lib\site-packages\scipy\interpolate\fitpack.py", line 291, in splrep
    res = _impl.splrep(x, y, w, xb, xe, k, task, s, t, full_output, per, quiet)
  File "D:\task2022(1)\task\venv\lib\site-packages\scipy\interpolate\_fitpack_impl.py", line 440, in splrep
    if task <= 0:
UnboundLocalError: local variable 'task' referenced before assignment

第291行内容 res = _impl.splrep(x, y, w, xb, xe, k, task, s, t, full_output, per, quiet)
第440行内容if task <= 0:
两个内容在不同文件

  • 写回答

2条回答 默认 最新

  • Yeats_Liao Java领域优质创作者 2022-08-06 10:20
    关注

    local variable 'task' referenced before assignment 在定义函数时,使用了与全局变量同名的局部变量,出现此错误
    因为函数内部定义了一个与外部变量同名的变量,此时函数会把这个变量定义为局部变量,如果没有赋值则不能调用它
    把‘task’换成别的变量名就解决了

    评论

报告相同问题?

问题事件

  • 创建了问题 8月6日

悬赏问题

  • ¥15 r语言练习题,三个问题都有疑惑
  • ¥20 ARM64架构下SSCMS部署问题
  • ¥20 请教如何让移动端的热区自适应
  • ¥30 为什么深度学习网络训练会出现训练集和测试集准确率和损失都不变的情况
  • ¥66 如何adb的情况下找打手机隐藏的文件
  • ¥15 (标签-3D|关键词-色模型)
  • ¥15 发现在MSVS2022中”#pragma once“不起作用
  • ¥15 实时声纹降噪算法进行无关说话人语音抑制
  • ¥100 adb针对解决手机锁屏问题(相关搜索:手机锁屏)
  • ¥15 发现哔哩哔哩的粉丝只能显示前5页能不能爬出来