Utilizzare np.where
per ottenere gli indici in cui una determinata condizione è True
.
Esempi:
Per un 2D np.ndarray
:
i,j = np.where(a==value)
Per una matrice 1D:
i, = np.where(a==value)
funziona Se anche per condizioni come >=
, <=
, !=
ecc ..
È possibile anche creare una sottoclasse di np.ndarray
con un metodo index()
:
class myarray(np.ndarray):
def __new__(cls, *args, **kwargs):
return np.array(*args, **kwargs).view(myarray)
def index(self, value):
return np.where(self==value)
Testing:
a = myarray([1,2,3,4,4,4,5,6,4,4,4])
a.index(4)
#(array([ 3, 4, 5, 8, 9, 10]),)
fonte
2013-08-06 11:38:00