J'utilise l'algorithme décrit here pour ajuster les courbes gaussiennes à mes données.L'algorithme d'ajustement n'accepte pas mes données
Si je produis mon tableau de données avec:
x=linspace(1.,100.,100)
data= 17*exp(-((x-10)/3)**2)
tout fonctionne très bien.
Mais si je lis les données à partir d'un fichier texte à l'aide
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)
Je reçois le message d'erreur:
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'
Pour autant que je peux voir, les valeurs incluses dans les données sont correctes, il ressemble à:
[0.108032, 0.86181600000000003, 1.386169, 3.2790530000000002, ... ]
Est-ce que quelqu'un a une idée de ce que je fais mal?
Merci!
@Dzz: vous n'incluez même pas les parties pertinentes de votre code source. La ligne 42 est où votre erreur se produit parce que vous utilisez "y.shape [0]" et y est un type de liste qui n'a pas un attribut de forme. Vous allez devoir inclure plus de sources pour que nous puissions trouver l'erreur correctement. –
Désolé, j'espérais réduire la quantité de texte dans le message en liant le code. – Dzz