gpt4 book ai didi

python - 由于 "can' t multiply sequence by non-int of type 'numpy.float64' 无法拟合数据“错误

转载 作者:行者123 更新时间:2023-12-05 01:40:50 26 4
gpt4 key购买 nike

我正在尝试使用 matplotlib 和 scipy 在具有线性函数 (a*x+b) 的 .txt 文件中拟合和绘制简单数据。我遇到了有关测试函数的错误:"can't multiply sequence by non-int of type 'numpy.float64'"

我尝试更改变量名称 x 但我遇到了同样的问题。大多数代码来自一个能够毫无问题地拟合数据并且对测试函数使用相同定义的工作代码。

import matplotlib.pyplot as plt
from scipy import optimize
import numpy as np
f=open("testData.txt","r")
x_data=[]
y_data=[]
trash=f.readline() #discards first line
for line in f: #reads x and y data from file
x_read,y_read=line.split()
x_data.append(float(x_read))
y_data.append(float(y_read))

def test_func(x, a, b):
return a*x+b

params, params_covariance = optimize.curve_fit(test_func, x_data, y_data,
p0=[1, 1])
plt.figure(figsize=(6, 4))
plt.scatter(x_data, y_data)
plt.plot(x_data, test_func(x_data, params[0], params[1]), label='Fitted
function')
plt.show()

这是错误:

Traceback (most recent call last):

File "C:/Users/Fra/Desktop/lab/ottica/2/reaqd.py", line 19, in plt.plot(x_data, test_func(x_data, params[0], params[1]), label='Fitted function')

File "C:/Users/Fra/Desktop/lab/ottica/2/reaqd.py", line 14, in test_func return a*x+b

TypeError: can't multiply sequence by non-int of type 'numpy.float64'

最佳答案

您可能正在尝试将 Python 列表乘以 float ,但这是行不通的。尝试 a*np.array(x)+b

关于python - 由于 "can' t multiply sequence by non-int of type 'numpy.float64' 无法拟合数据“错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55742096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com