Как исправить: объект 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: операнды не могут быть переданы с помощью фигур.