Question

comme valeur de remplacement pour une autre personne dans une opération avec des tableaux, ou comment effectuer une recherche dans un tableau et remplacer une valeur par une autre

par exemple:

array ([[NaN, 1., 1., 1., 1., 1., 1.]
       [1., NaN, 1., 1., 1., 1., 1.]
       [1., 1., NaN, 1., 1., 1., 1.]
       [1., 1., 1., NaN, 1., 1., 1.]
       [1., 1., 1., 1., NaN, 1., 1.]
       [1., 1., 1., 1., 1., NaN, 1.]
       [1., 1., 1., 1., 1., 1., NaN]])

où il peut remplacer NaN par 0. merci pour toute réponse

Était-ce utile?

La solution

Vous pouvez faire ceci:

import numpy as np
x=np.array([[np.NaN, 1., 1., 1., 1., 1., 1.],[1., np.NaN, 1., 1., 1., 1., 1.],[1., 1., np.NaN, 1., 1., 1., 1.], [1., 1., 1., np.NaN, 1., 1., 1.], [1., 1., 1., 1., np.NaN, 1., 1.],[1., 1., 1., 1., 1., np.NaN, 1.], [1., 1., 1., 1., 1., 1., np.NaN]])
x[np.isnan(x)]=0

np.isnan (x) renvoie un tableau booléen qui est True x est NaN . x [boolean_array] = 0 emploie True .

Pour une excellente introduction à l'indexation sophistiquée et bien plus encore, voir également le numpybook .

Autres conseils

ces jours-ci, il y a la fonction spéciale:

a = numpy.nan_to_num(a)

Voici l'exemple de tableau dans la question:

import numpy as np
a = np.where(np.eye(7), np.nan, 1)

Vous pouvez utiliser numpy.where . et numpy.isnan permet de créer un nouveau tableau b :

b = np.where(np.isnan(a), 0, a)

Ou utilisez une fonction sur place pour modifier directement le tableau a :

np.place(a, np.isnan(a), 0)  # returns None
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top