'valeur invalide rencontrée dans l'avertissement à double scalaire', peut-être num PY
quand j'exécute mon code, j'obtiens ces avertissements, toujours par groupes de quatre, sporadiquement. J'ai essayé de localiser la source en plaçant des messages de débogage avant et après certaines déclarations pour identifier son origine.
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
est-ce Est un Numpy avertissement, et qu'est ce qu'un double scalaire?
à Partir de Numpy-je utiliser
min(), argmin(), mean() and random.randn()
j'utilise aussi Matplotlib
5 réponses
cela ressemble à une erreur de calcul à virgule flottante. Consultez le numpy.seterr fonction pour obtenir plus d'informations sur l'endroit où elle se produit.
parfois NaNs ou les valeurs nulles dans les données vont générer cette erreur avec Numpy. Si vous ingérez des données provenant par exemple d'un fichier CSV ou quelque chose comme ça, et que vous opérez ensuite sur les données en utilisant des tableaux numpy, le problème pourrait provenir de votre ingestion de données. Vous pouvez essayer d'alimenter votre code avec un petit ensemble de données avec des valeurs connues, et voir si vous obtenez le même résultat.
Zero-taille du tableau passé à numpy.mean
soulève cet avertissement (comme indiqué dans plusieurs commentaires).
Pour certains autres candidats:
median
augmente également cet avertissement sur un tableau de taille zéro.
les autres candidats ne soulèvent pas cette mise en garde:
min,argmin
à la fois d'améliorerValueError
sur le tableau viderandn
faut*arg
; à l'aide derandn(*[])
renvoie un nombre aléatoire simplestd,var
retournan
sur un tableau vide
j'ai rencontré un problème similaire - Valeur invalide rencontrée dans ... Après avoir passé beaucoup de temps à essayer de comprendre ce qui est à l'origine de cette erreur, je crois que dans mon cas, il était due à NaN dans mon dataframe. Vérifier travailler avec des données manquantes dans pandas.
Aucun = = Aucun Vrai
np.nan = = np.Nan False
quand NaN n'est pas égal à NaN alors les opérations arithmétiques comme la division et la multiplication provoquent cette erreur.
deux ou trois choses vous pouvez faire pour éviter ce problème:
Utiliser la mp.set_option pour définir le nombre de décimales à prendre en compte dans votre analyse, pour un infinitesmall nombre ne déclenchent pas de problème similaire - ('affichage.float_format', lambda x:'%.3f' % x).
utilisez df.round() pour arrondir les chiffres, alors Panda gouttes les derniers chiffres de l'analyse. Et le plus important,
mettre NaN à zéro df=df.fillna (0). Attention si on remplit NaN de zéro. ne s'applique pas à vos ensembles de données parce que cela traitera l'enregistrement comme zéro so N dans la moyenne, std etc change également.