Python Fit算法不接受我的数据
我正在使用描述的算法将高斯贝尔曲线拟合到我的数据中 如果我使用以下命令生成数据数组:Python Fit算法不接受我的数据,python,arrays,file-io,Python,Arrays,File Io,我正在使用描述的算法将高斯贝尔曲线拟合到我的数据中 如果我使用以下命令生成数据数组: x=linspace(1.,100.,100) data= 17*exp(-((x-10)/3)**2) 一切正常 但是如果我用 file = open("d:\\test7.txt") arr=[] data=[] def column(matrix,i): return [row[i] for row in matrix] for line in file.readlin
x=linspace(1.,100.,100)
data= 17*exp(-((x-10)/3)**2)
一切正常
但是如果我用
file = open("d:\\test7.txt")
arr=[]
data=[]
def column(matrix,i):
return [row[i] for row in matrix]
for line in file.readlines():
numbers=map(float, line.split())
arr.append(numbers)
data = column(arr,300)
x=linspace(1.,115.,115)
我收到错误消息:
Traceback (most recent call last):
File "readmatrix.py", line 60, in <module> fit(f, [mu, sigma, height], data)
File "readmatrix.py", line 42, in fit if x is None: x = arange(y.shape[0])
AttributeError: 'list' object has no attribute 'shape'
有人知道我做错了什么吗
谢谢 fit函数期望数据是一个具有形状属性的numpy数组,而不是一个不具有形状属性的列表,因此是AttributeError 转换您的数据:
def column(matrix,i):
return numpy.asarray([row[i] for row in matrix])
balpha溶液不正确;解决方案就是通过numpy.array将我的列表转换成一个numpy数组
谢谢你给我一个提示 @Dzz:你甚至连源代码的相关部分都没有包含。第42行是发生错误的地方,因为您使用的是y.shape[0],而y是一个没有shape属性的列表类型。您需要包含更多的源代码,以便我们正确地查找错误。对不起,我希望通过链接到代码来减少文章中的文本量。以什么方式不正确?我刚刚使用了numpy文档,根据它asarray应该可以工作;我没有安装numpy,您会遇到什么错误?是的,但是命令arr.appendnumbers会再次从numpy.array中生成一个列表。在列之前调用..arr.appendnumbers,所以这不会有什么区别。不管怎样,只要它起作用……:-
def column(matrix,i):
return numpy.asarray([row[i] for row in matrix])