Cara memperbaiki: typeerror: tidak dapat dikurangi dengan tipe fleksibel


Kesalahan yang mungkin Anda temui saat menggunakan Python adalah:

 ValueError : cannot perform reduce with flexible type

Kesalahan ini terjadi ketika Anda mencoba melakukan penghitungan pada objek dengan Python yang bukan numerik.

Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita memiliki array NumPy berikut:

 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

Kami menerima TypeError karena kami mencoba menghitung median dari daftar nilai string.

Bagaimana cara memperbaiki kesalahan tersebut

Cara termudah untuk memperbaiki kesalahan ini adalah dengan mengonversi array NumPy menjadi objek float sehingga kita dapat melakukan operasi matematika padanya.

Kode berikut menunjukkan cara melakukan ini:

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

Sekarang kita dapat melakukan operasi matematika pada array 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

Perhatikan bahwa kami tidak menerima kesalahan apa pun karena array NumPy adalah objek float, yang berarti kami dapat melakukan operasi matematika padanya.

Sumber daya tambahan

Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:

Cara Memperbaiki KeyError di Pandas
Cara Memperbaiki: ValueError: Tidak dapat mengubah float NaN menjadi int
Cara Memperbaiki: ValueError: Operan tidak dapat disiarkan dengan bentuk

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *