Одна ошибка, с которой вы можете столкнуться при использовании 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: операнды не могли транслироваться вместе с фигурами