7
votes

Comment inverser Numpy.where (nw.where) fonction

J'utilise fréquemment la fonction NUMPY.Where pour rassembler un tuple d'indices d'une matrice ayant une certaine propriété. Par exemple,

G = np.zeros(X.shape,dtype=np.bool)
>>> G[ix] = True


0 commentaires

3 Réponses :


8
votes

Quelque chose comme ça peut-être? XXX

Mais si c'est quelque chose de simple, comme x> 0 , vous êtes probablement mieux à faire masque = x> 0 sauf si masque est très clairsemé ou que vous n'avez plus de référence à x .


0 commentaires

2
votes
mask = X > 0
imask = np.logical_not(mask)
For exampleEdit: Sorry for being so concise before. Shouldn't be answering things on the phone :PAs I noted in the example, it's better to just invert the boolean mask. Much more efficient/easier than going back from the result of where. 

0 commentaires

2
votes

Le bas du np.where docstring suggère d'utiliser np.in1d ​​ pour cela. xxx

(tandis que c'est un Nice One-Liner, il est beaucoup plus lent que la solution de @bi Rico.)


0 commentaires