Convertir un tableau numpy type et les valeurs de Float64 à Float32
Je suis en train de convertir seuil de tableau(fichier pickle de l'isolement de la forêt de scikit learn), de type de Float64 à Float32
for i in range(len(tree.tree_.threshold)):
tree.tree_.threshold[i] = tree.tree_.threshold[i].astype(np.float32)
Puis l'Impression qu'il
for value in tree.tree_.threshold[:5]:
print(type(value))
print(value)
la sortie que je reçois est :
<class 'numpy.float64'>
526226.0
<class 'numpy.float64'>
91.9514312744
<class 'numpy.float64'>
3.60330319405
<class 'numpy.float64'>
-2.0
<class 'numpy.float64'>
-2.0
Je ne suis pas d'obtenir une bonne conversion Float32. Je veux convertir des valeurs et de leur type Float32, quelqu'un A la solution de contournement ?
non, il n'y a pas de valeurs manquantes, et la valeur max est 526225.98822
pouvez-vous nous donner l'impression de l'arbre.tree_.seuil.drapeaux
C_CONTIGUOUS : Faux F_CONTIGUOUS : Faux OWNDATA : Faux en ÉCRITURE : Vrai ALIGNÉS : Vrai UPDATEIFCOPY : Faux
pouvez-vous nous donner l'impression de l'arbre.tree_.seuil.drapeaux
C_CONTIGUOUS : Faux F_CONTIGUOUS : Faux OWNDATA : Faux en ÉCRITURE : Vrai ALIGNÉS : Vrai UPDATEIFCOPY : Faux
OriginalL'auteur Akshay Tilekar | 2017-08-30
Vous devez vous connecter pour publier un commentaire.
Le problème est que vous ne faites pas n'importe quel type de conversion du tableau numpy. Vous calculer une float32 variable et le mettre comme une entrée dans un float64 tableau numpy. numpy puis les convertit correctement à float64
Essayer quelque chose comme ceci:
La sortie (testé avec python 2.7)
un est dans votre cas, le tableau de l'arbre.tree_.seuil
il était à jeun façon de créé un tableau numpy qui est rempli de quelque chose... ici zéros. Le 4 est juste le nombre de zéros. Je choisis 4 parce que j'aime le nombre...
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-entrée-125-d20ee23285ad> <module>() ----> 1 arbre.tree_.seuil = np.les zéros(4,dtype="float64") 2 print (arbre.tree_.seuil.dtype) 3 arbre.tree_.seuil= float32(arbre.tree_.seuil) 4 impression (un.dtype) AttributeError: l'attribut 'seuil' de 'sklearn.d'arbre en arbre._tree.Arbre des objets n'est pas accessible en écriture
se même erreur: AttributeError Traceback (most recent call last) <ipython-entrée-139-0ba8c9d97878> <module>() ----> 1 arbre.tree_.seuil = np.les zéros(4,dtype="float64") 2 print (arbre.tree_.seuil.dtype) 3 print (arbre.tree_.seuil[0].dtype) 4 arbre.tree_.seuil= float32(a) 5 impression (de l'arbre.tree_.seuil.dtype) AttributeError: l'attribut 'seuil' de 'sklearn.d'arbre en arbre._tree.Arbre des objets n'est pas accessible en écriture
eh bien, si ce n'est pas une écriture de l'objet, vous ne peut pas le remplacer. C'est pourquoi la solution ne marchera pas. Il ne fonctionne que si vous utilisez un nouveau tableau numpy qui vous ne voulez probablement pas.
OriginalL'auteur Glostas
Pour plus d'info, vous pouvez suivre ce lien:
Question De Précision
OriginalL'auteur Akshay Tilekar
Vous pouvez essayer ceci:
OriginalL'auteur Woody