Index of element in NumPy array [duplicate] Index of element in NumPy array [duplicate] arrays arrays

Index of element in NumPy array [duplicate]


Use np.where to get the indices where a given condition is True.

Examples:

For a 2D np.ndarray called a:

i, j = np.where(a == value) # when comparing arrays of integersi, j = np.where(np.isclose(a, value)) # when comparing floating-point arrays

For a 1D array:

i, = np.where(a == value) # integersi, = np.where(np.isclose(a, value)) # floating-point

Note that this also works for conditions like >=, <=, != and so forth...

You can also create a subclass of np.ndarray with an index() method:

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]),)


You can convert a numpy array to list and get its index .

for example:

tmp = [1,2,3,4,5] #python lista = numpy.array(tmp) #numpy arrayi = list(a).index(2) # i will return index of 2, which is 1

this is just what you wanted.


I'm torn between these two ways of implementing an index of a NumPy array:

idx = list(classes).index(var)idx = np.where(classes == var)

Both take the same number of characters, but the first method returns an int instead of a numpy.ndarray.