Utilice np.where
pour obtenir les indices où une condition donnée est True
.
Exemples :
Pour une 2D np.ndarray
appelé a
:
i, j = np.where(a == value) # when comparing arrays of integers
i, j = np.where(np.isclose(a, value)) # when comparing floating-point arrays
Pour un tableau 1D :
i, = np.where(a == value) # integers
i, = np.where(np.isclose(a, value)) # floating-point
Notez que cela fonctionne également pour des conditions telles que >=
, <=
, !=
et ainsi de suite...
Vous pouvez également créer une sous-classe de np.ndarray
avec un index()
método:
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)
Test :
a = myarray([1,2,3,4,4,4,5,6,4,4,4])
a.index(4)
#(array([ 3, 4, 5, 8, 9, 10]),)