Cara memperbaiki: hanya array berukuran 1 yang dapat dikonversi ke skalar python
Kesalahan yang mungkin Anda temui saat menggunakan Python adalah:
TypeError : only size-1 arrays can be converted to Python scalars
Kesalahan ini paling sering terjadi ketika mencoba menggunakan np.int() untuk mengonversi array nilai float NumPy menjadi array nilai integer.
Namun, fungsi ini hanya menerima satu nilai, bukan serangkaian nilai.
Sebagai gantinya, Anda harus menggunakan x.astype(int) untuk mengonversi array nilai float NumPy menjadi array nilai integer, karena fungsi ini mampu menerima array.
Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita membuat array nilai float NumPy berikut:
import numpy as np #create NumPy array of float values x = np. array ([3, 4.5, 6, 7.7, 9.2, 10, 12, 14.1, 15])
Sekarang misalkan kita mencoba mengubah array nilai float ini menjadi array nilai integer:
#attempt to convert array to integer values
n.p. int (x)
TypeError : only size-1 arrays can be converted to Python scalars
Kami menerima TypeError karena fungsi np.int() hanya menerima nilai tunggal, bukan array nilai.
Bagaimana cara memperbaiki kesalahan tersebut
Untuk mengonversi array NumPy yang berisi nilai float menjadi nilai integer, kita dapat menggunakan kode berikut:
#convert array of float values to integer values
x. astype (int)
array([ 3, 4, 6, 7, 9, 10, 12, 14, 15])
Perhatikan bahwa array nilai telah diubah menjadi bilangan bulat dan kami tidak menerima kesalahan apa pun karena fungsi astype() mampu menangani array nilai.
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi astype() di sini .
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