Python运行报错:name 'np_array' is not defined 问题求助
问题分析
你的代码存在两个核心问题:
np_array仅在未被调用的y_true()函数内部定义,外部代码无法访问这个变量,因此会报未定义错误。- 你定义的
y_true()函数逻辑完全错误:函数名和后续的变量y_true重名,函数内部还递归调用自身,且这个函数从始至终没有被执行过,属于冗余无效代码。
同时,你后续对 y_true 和 y_pred 的反归一化逻辑也有问题——试图用同一个不存在的 np_array 处理两者,但实际上应该分别对两个变量做reshape和反归一化操作。
修正后的代码
import numpy as np no_of_pred = 24 ind = 72 y_pred = forecast(x_val, no_of_pred, ind) y_true = y_val[ind:ind + no_of_pred] # 将归一化值转换回原始维度空间 # 分别处理y_true和y_pred y_true_original = y_scaler.inverse_transform(y_true.reshape(1, -1)) y_pred_original = y_scaler.inverse_transform(y_pred.reshape(1, -1))
关键修正点
- 删除了毫无作用且逻辑错误的
y_true()函数。 - 直接对
y_true和y_pred分别执行reshape和反归一化操作,不再依赖不存在的np_array。 - 用不同变量(
y_true_original、y_pred_original)存储反归一化后的结果,避免覆盖原始的归一化变量,方便后续对比或使用。
内容的提问来源于stack exchange,提问作者Narsis
相关产品推荐
相关产品推荐

