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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *