Nasıl düzeltilir? typeerror: esnek türle azaltılamıyor
Python kullanırken karşılaşabileceğiniz bir hata:
ValueError : cannot perform reduce with flexible type
Bu hata, Python’da sayısal olmayan bir nesne üzerinde hesaplama yapmaya çalıştığınızda ortaya çıkar.
Aşağıdaki örnekte bu hatanın pratikte nasıl düzeltileceği gösterilmektedir.
Hata nasıl yeniden oluşturulur?
Aşağıdaki NumPy dizisine sahip olduğumuzu varsayalım:
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
Dize değerleri listesinin medyanını hesaplamaya çalıştığımız için TypeError alıyoruz.
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin en kolay yolu, NumPy dizisini üzerinde matematiksel işlemler gerçekleştirebilmemiz için bir kayan nesneye dönüştürmektir.
Aşağıdaki kod bunun nasıl yapılacağını gösterir:
#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')
Artık NumPy dizisinde matematiksel işlemler yapabiliriz:
#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 dizisinin bir kayan nesne olması nedeniyle herhangi bir hata almadığımızı unutmayın, bu da onun üzerinde matematiksel işlemler yapabileceğimiz anlamına gelir.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Pandas’ta KeyError Nasıl Düzeltilir
Nasıl düzeltilir? ValueError: float NaN int’ye dönüştürülemiyor
Nasıl düzeltilir? ValueError: İşlenenler şekillerle yayınlanamadı