Jak naprawić: typeerror: nie można zmniejszyć za pomocą elastycznego typu


Błąd, który możesz napotkać podczas korzystania z Pythona, to:

 ValueError : cannot perform reduce with flexible type

Ten błąd występuje, gdy próbujesz wykonać obliczenia na obiekcie w Pythonie, który nie jest liczbowy.

Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą tablicę 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

Otrzymujemy błąd TypeError , ponieważ próbowaliśmy obliczyć medianę listy wartości łańcuchowych.

Jak naprawić błąd

Najłatwiejszym sposobem naprawienia tego błędu jest po prostu konwersja tablicy NumPy na obiekt zmiennoprzecinkowy, abyśmy mogli wykonywać na niej operacje matematyczne.

Poniższy kod pokazuje, jak to zrobić:

 #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')

Możemy teraz wykonywać operacje matematyczne na tablicy 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

Należy pamiętać, że nie otrzymujemy żadnych błędów, ponieważ tablica NumPy jest obiektem zmiennoprzecinkowym, co oznacza, że możemy na niej wykonywać operacje matematyczne.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *