Как исправить: объект 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, мы можем использовать функцию NumPywhere () :

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

(array([3]),)

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

(array([9]),)

По результату мы видим:

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *