Як виправити: typeerror: неможливо зменшити за допомогою гнучкого типу


Під час використання Python може виникнути така помилка:

 ValueError : cannot perform reduce with flexible type

Ця помилка виникає, коли ви намагаєтеся виконати обчислення об’єкта в Python, який не є числовим.

У наступному прикладі показано, як виправити цю помилку на практиці.

Як відтворити помилку

Припустимо, у нас є наступний масив NumPy:

 import numpy as np

#define NumPy array of values
data = np. array (['1', '2', '3', '4', '7', '9', '10', '12'])

#attempt to calculate median of values
n.p. median (data)

TypeError : cannot perform reduce with flexible type

Ми отримуємо TypeError , оскільки ми намагалися обчислити медіану списку рядкових значень.

Як виправити помилку

Найпростіший спосіб виправити цю помилку — просто перетворити масив NumPy на об’єкт float, щоб ми могли виконувати над ним математичні операції.

Наступний код показує, як це зробити:

 #convert NumPy array of string values to float values
data_new = data. astype (float)

#view updated NumPy array
data_new

array([ 1., 2., 3., 4., 7., 9., 10., 12.])

#check data type of array
data_new. dtype

dtype('float64')

Тепер ми можемо виконувати математичні операції з масивом NumPy:

 #calculate median value of array
n.p. median (data_new)

5.5

#calculate mean value of array
n.p. mean (data_new)

6.0

#calculate max value of array
n.p. max (data_new)

12.0

Зауважте, що ми не отримуємо жодних помилок, оскільки масив NumPy є об’єктом з плаваючою точкою, що означає, що ми можемо виконувати над ним математичні операції.

Додаткові ресурси

У наступних посібниках пояснюється, як виправити інші типові помилки в Python:

Як виправити KeyError у Pandas
Як виправити: ValueError: неможливо перетворити float NaN на int
Як виправити: ValueError: операнди не можна транслювати з фігурами

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

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