Cara memperbaiki: nilai tidak valid ditemukan di true_divide
Satu peringatan yang mungkin Anda temui saat menggunakan NumPy adalah:
RuntimeWarning : invalid value encountered in true_divide
Peringatan ini terjadi ketika Anda mencoba membagi dengan nilai yang tidak valid (seperti NaN, Inf, dll.) dalam array NumPy.
Perlu dicatat bahwa ini hanyalah peringatan dan NumPy hanya akan mengembalikan nilai nan ketika mencoba membagi dengan nilai yang tidak valid.
Contoh berikut menunjukkan bagaimana menanggapi peringatan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita mencoba membagi nilai dari satu array NumPy dengan nilai dari array NumPy lainnya:
import numpy as np #define NumPy arrays x = np. array ([4, 5, 5, 7, 0]) y = np. array ([2, 4, 6, 7, 0]) #divide the values in x by the values in y n.p. divide (x,y) array([2., 1.25, 0.8333, 1., no]) RuntimeWarning : invalid value encountered in true_divide
Perhatikan bahwa NumPy membagi setiap nilai x dengan nilai y yang sesuai, namun RuntimeWarning dihasilkan.
Hal ini dikarenakan operasi pembagian terakhir yang dilakukan adalah nol dibagi nol sehingga menghasilkan nilai nan .
Bagaimana menanggapi peringatan ini
Seperti disebutkan sebelumnya, RuntimeWarning ini hanya peringatan dan tidak mencegah eksekusi kode.
Namun, jika Anda ingin menyembunyikan peringatan jenis ini, Anda dapat menggunakan sintaks berikut:
n.p. seterr (invalid=' ignore ')
Ini memberitahu NumPy untuk menyembunyikan peringatan apa pun yang berisi pesan “tidak valid”.
Jadi jika kita menjalankan kode itu lagi, kita tidak akan mendapat peringatan apa pun:
import numpy as np #define NumPy arrays x = np. array ([4, 5, 5, 7, 0]) y = np. array ([2, 4, 6, 7, 0]) #divide the values in x by the values in y n.p. divide (x,y) array([2., 1.25, 0.8333, 1., no])
Nilai nan masih dikembalikan untuk nilai keluaran terakhir, namun kali ini tidak ada pesan peringatan yang ditampilkan.
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