Cara memperbaiki: objek 'numpy.float64' tidak dapat diubah
Kesalahan yang mungkin Anda temui saat menggunakan NumPy adalah:
TypeError : 'numpy.float64' object is not iterable
Kesalahan ini terjadi ketika Anda mencoba melakukan operasi berulang pada nilai float di NumPy, yang tidak mungkin dilakukan.
Contoh berikut menunjukkan cara mengatasi kesalahan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita memiliki array NumPy berikut:
import numpy as np #define array of data data = np. array ([1.3, 1.5, 1.6, 1.9, 2.2, 2.5]) #display array of data print (data) [1.3 1.5 1.6 1.9 2.2 2.5]
Sekarang misalkan kita mencoba mencetak jumlah setiap nilai dalam array:
#attempt to print the sum of every value
for i in data:
print (sum(i))
TypeError : 'numpy.float64' object is not iterable
Kami menerima kesalahan karena kami mencoba melakukan iteratif (mengambil jumlah nilai) pada setiap nilai float individual dalam array.
Bagaimana cara memperbaiki kesalahan tersebut
Kita dapat menghindari kesalahan ini dengan dua cara:
1. Lakukan operasi non-iteratif pada setiap nilai dalam array.
Misalnya, kita bisa mencetak setiap nilai dalam array:
#print every value in array
for i in data:
print (i)
1.3
1.5
1.6
1.9
2.2
2.5
Kami tidak menerima kesalahan karena kami belum mencoba mengulangi setiap nilai.
2. Lakukan operasi berulang pada array multidimensi.
Kita juga dapat menghindari kesalahan dengan melakukan operasi berulang pada array multidimensi:
#create multi-dimensional array
data2 = np. array ([[1.3, 1.5], [1.6, 1.9], [2.2, 2.5]])
#print sum of each element in array
for i in data2:
print (sum(i))
2.8
3.5
4.7
Kami tidak mendapatkan kesalahan karena masuk akal untuk menggunakan fungsi sum() pada array multidimensi.
Secara khusus, berikut adalah cara NumPy menghitung nilai penjumlahan:
- 1,3 + 1,5 = 2,8
- 1,6 + 1,9 = 3,5
- 2,2 + 2,5 = 4,7
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