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])