Як виправити: об’єкт «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: неможливо перетворити float NaN на int
Як виправити: ValueError: операнди не можна транслювати з фігурами