如何修复‘无法将序列与numpy.float64类型非整数相乘’错误?
问题分析与解决
首先看你给出的代码,有几个明显问题导致了这个错误:
- 变量名不匹配:你定义了
x和y两个列表,但调用poly.fit时用的是x1_trimmed、y1_trimmed_norm——这两个变量在当前代码片段里根本没定义,要么是你写错了变量名,要么是这两个变量的类型不符合要求。 - 输入类型错误:报错提示“不能用numpy浮点数乘序列”,说明传入
poly.fit的x1_trimmed或y1_trimmed_norm是普通Python列表,而numpy.polynomial.Polynomial.fit内部运算需要numpy数组类型,普通列表无法和numpy浮点数进行乘法运算。
具体解决步骤:
- 修正变量名:如果
x1_trimmed、y1_trimmed_norm就是你定义的x、y,直接把代码里的变量名改过来:test1 = poly.fit(x, y, no_of_coef) plt.plot(x, test1(x), linewidth=5) - 转换为numpy数组:如果确实需要用
x1_trimmed、y1_trimmed_norm,先确保它们是numpy数组,添加以下代码(记得先导入numpy):import numpy as np x1_trimmed = np.array(x1_trimmed) y1_trimmed_norm = np.array(y1_trimmed_norm) - 检查
no_of_coef参数:这个参数必须是整数(代表多项式的系数个数,比如2对应一次多项式),确认你已经给它赋了合法的整数值,比如no_of_coef = 3。
你提到代码在其他数据集上能运行,大概率是其他数据集的输入是numpy数组,而这次用了普通列表,或者变量名没对应上。
内容的提问来源于stack exchange,提问作者MRR
相关产品推荐
相关产品推荐

