Как исправить: объект «numpy.ndarray» не имеет атрибута «index»


Одна ошибка, с которой вы можете столкнуться при использовании NumPy:

AttributeError : 'numpy.ndarray' object has no attribute 'index'

Эта ошибка возникает, когда вы пытаетесь использовать функцию index() в массиве NumPy, у которого нет атрибута индекса, доступного для использования.

В следующем примере показано, как устранить эту ошибку на практике.

Как воспроизвести ошибку

Предположим, у нас есть следующий массив NumPy:

import numpy as np

#create NumPy array
x = np.array([4, 7, 3, 1, 5, 9, 9, 15, 9, 18])

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

#find minimum and maximum values of array
min_val = np.min (x)
max_val = np.max (x)

#print minimum and maximum values
print(min_val, max_val)

1 18

Теперь предположим, что мы пытаемся найти позицию индекса минимального и максимального значений в массиве:

#attempt to print index position of minimum value
x. index (min_val)

AttributeError : 'numpy.ndarray' object has no attribute 'index'

Мы получаем ошибку, потому что не можем применить функцию index() к массиву NumPy.

Как устранить ошибку

Чтобы найти положение индекса минимального и максимального значений в массиве NumPy, мы можем использовать функцию NumPy where() :

#find index position of minimum value
np.where (x == min_val)

(array([3]),)

#find index position of maximum value
np.where (x == max_val)

(array([9]),)

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

  • Минимальное значение в массиве находится в позиции 3 индекса.
  • Максимальное значение в массиве находится в позиции индекса 9 .

Мы можем использовать тот же общий синтаксис, чтобы найти позицию индекса любого значения в массиве NumPy.

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

#find index positions that are equal to the value 9
np.where (x == 9 )

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

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

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

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

Как исправить KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в целое число
Как исправить: ValueError: операнды не могли транслироваться вместе с фигурами

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.