Comment résoudre le AttributeError:'liste' de l'objet n'a pas d'attribut "astype'?
Je me demandais simplement comment résoudre l'attribut erreur dans python3.6.
L'erreur est
'liste' de l'objet n'a pas d'attribut "astype'.
Mon code associé est comme le coup.
def _init_mean_std(self, data):
data = data.astype('float32')
self.mean, self.std = np.mean(data), np.std(data)
self.save_meanstd()
return data
Est ce que quelqu'un peut des conseils pour moi?
Merci!
Par la conversion de
Je ne sais pas si vous le faites volontairement, mais notez que, par défaut
data
dans quelque chose qui possède un attribut astype
. Dire, un tableau numpy. Faire import numpy as np;data = np.array(data).astype('float32')
Je ne sais pas si vous le faites volontairement, mais notez que, par défaut
np.array(data)
produit float64
s. Vérifier qu'en faisant print(data.dtype)
.OriginalL'auteur Tom | 2017-10-15
Vous devez vous connecter pour publier un commentaire.
La racine du problème est la confusion de Python, les listes et les tableaux NumPy, qui sont des types de données différents. NumPy méthodes qui sont invoqués comme
np.foo(array)
en général ne sera pas vous plaindre si vous leur donnez une liste Python, ils vont convertir en un tableau NumPy silencieusement. Mais si vous essayez d'appeler une méthode contenue dans l'objet, commearray.foo()
alors bien sûr, il doit avoir le type approprié déjà.Je conseille
de sorte que le type d'un tableau est connu pour NumPy à la fois. Cela évite de travail lorsque vous créez d'abord un tableau et puis le convertir en un autre type.
NumPy recommande l'utilisation de dtype objets au lieu de chaînes de caractères comme "float32".
OriginalL'auteur