web-dev-qa-db-fra.com

Comment obtenir la liste des index de toutes les valeurs NaN dans un tableau numpy?

Dis maintenant, j'ai un tableau numpy qui est défini comme,

[[1,2,3,4],
[2,3,NaN,5],
[NaN,5,2,3]]

Maintenant, je veux une liste contenant tous les indices des valeurs manquantes, qui est [(1,2),(2,0)] dans ce cas.

Est-ce que je peux faire ça?

46
xxx222

np.isnan combiné avec np.argwhere

x = np.array([[1,2,3,4],
              [2,3,np.nan,5],
              [np.nan,5,2,3]])
np.argwhere(np.isnan(x))

sortie:

array([[1, 2],
       [2, 0]])
85
michael_j_ward

Vous pouvez utiliser np.where pour faire correspondre les conditions booléennes correspondant à Nan valeurs du tableau et map chaque résultat pour générer une liste de tuples.

_>>>list(map(Tuple, np.where(np.isnan(x))))
[(1, 2), (2, 0)]
_
16
Nickil Maveli