Как найти индекс значения в массиве NumPy (с примерами)


Вы можете использовать следующие методы, чтобы найти положение индекса определенных значений в массиве NumPy:

Метод 1: найти все ценные позиции в индексе

np.where (x== value )

Метод 2: найти первую позицию индекса значения

np.where (x== value )[0][0]

Метод 3: найти первую позицию индекса нескольких значений

#define values of interest
vals = np.array([ value1 , value2 , value3 ])

#find index location of first occurrence of each value of interest
sorter = np.argsort (x)
sorter[np.searchsorted (x, vals, sorter=sorter)]

В следующих примерах показано, как использовать каждый метод на практике.

Метод 1: найти все ценные позиции в индексе

В следующем коде показано, как найти каждую позицию индекса, которая равна определенному значению в массиве NumPy:

import numpy as np

#define array of values
x = np.array([4, 7, 7, 7, 8, 8, 8])

#find all index positions where x is equal to 8
np.where (x== 8 )

(array([4, 5, 6]),)

Из вывода мы видим, что позиции индекса 4, 5 и 6 равны значению 8 .

Метод 2: найти первую позицию индекса значения

В следующем коде показано, как найти первую позицию индекса, равную определенному значению в массиве NumPy:

import numpy as np

#define array of values
x = np.array([4, 7, 7, 7, 8, 8, 8])

#find first index position where x is equal to 8
np.where (x== 8 )[0][0]

4

Из вывода мы видим, что значение 8 сначала встречается в позиции индекса 4.

Метод 3: найти первую позицию индекса нескольких значений

В следующем коде показано, как найти первую позицию индекса нескольких значений в массиве NumPy:

import numpy as np

#define array of values
x = np.array([4, 7, 7, 7, 8, 8, 8])

#define values of interest
vals = np.array([4, 7, 8])

#find index location of first occurrence of each value of interest
sorter = np.argsort (x)
sorter[np.searchsorted (x, vals, sorter=sorter)]

array([0, 1, 4])

Из вывода мы видим:

  • Значение 4 сначала встречается в индексной позиции 0.
  • Значение 7 сначала встречается в индексной позиции 1.
  • Значение 8 сначала встречается в индексной позиции 4.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в NumPy:

Как сопоставить функцию с массивом NumPy
Как преобразовать массив NumPy в список в Python
Как рассчитать величину вектора с помощью NumPy