sklearn erreur ValueError: Entrée contient NaN, infinity ou une valeur trop grande pour dtype('float64')

Je suis en utilisant sklearn et ayant un problème avec l'affinité de propagation. J'ai construit une matrice d'entrée et je reçois l'erreur suivante.

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

J'ai couru

np.isnan(mat.any()) #and gets False
np.isfinite(mat.all()) #and gets True

J'ai essayé d'utiliser

mat[np.isfinite(mat) == True] = 0

pour éliminer l'infini de valeurs, mais cela ne fonctionne pas non plus.
Que puis-je faire pour se débarrasser de l'infini de valeurs dans ma matrice, de sorte que je peux utiliser l'affinité algorithme de propagation?

Je suis à l'aide de l'anaconda et python 2.7.9.

  • Je vais voter pour fermer cette, comme l'auteur le dit lui-même que ses données n'était pas valide et si tout indiquait-il, il n'a pas de valider -- l'équivalent des données à une faute de frappe, qui est un de clôture de la raison.
  • J'ai eu ce même problème avec mon jeu de données. En fin de compte: données d'erreur, pas un scikit learn bug. La plupart des réponses ci-dessous sont utiles, mais trompeuses. Vérifier vérifier vérifier vos données, assurez-vous que lors de la conversion à float64 il est à la fois fini et pas nan. Le message d'erreur est apt - ce n'est presque certainement la question pour quelqu'un qui se trouve ici.
  • Pour l'enregistrement et +1 pour @Owen, vérifiez votre saisie de données et assurez-vous que vous n'avez aucune valeur manquante dans une ligne ou une grille. Vous pouvez utiliser le Imputer la classe pour éviter ce problème.
InformationsquelleAutor Ethan Waldie | 2015-07-09