Cara memperbaiki: runtimewarning: nilai tidak valid ditemukan di double_scalars


Kesalahan yang mungkin Anda temui di Python adalah:

 runtimewarning: invalid value encountered in double_scalars

Kesalahan ini terjadi ketika Anda mencoba melakukan operasi matematika yang melibatkan angka yang sangat kecil atau sangat besar dan Python hanya menghasilkan nilai NaN sebagai hasilnya.

Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita mencoba melakukan operasi matematika berikut dengan dua array NumPy:

 import numpy as np

#define two NumPy arrays
array1 = np. array ([[1100, 1050]])
array2 = np. array ([[1200, 4000]])

#perform complex mathematical operation
n.p. exp (-3*array1). sum () / np. exp (-3*array2). sum ()

RuntimeWarning: invalid value encountered in double_scalars

Kami menerima RuntimeWarning karena hasil penyebutnya sangat mendekati nol.

Artinya, jawaban terhadap soal pembagian akan sangat besar dan Python tidak mampu menangani nilai sebesar itu.

Bagaimana cara memperbaiki kesalahan tersebut

Biasanya, cara untuk memperbaiki kesalahan jenis ini adalah dengan menggunakan fungsi khusus dari pustaka Python lain yang dapat menangani nilai yang sangat kecil atau sangat besar dalam perhitungan.

Dalam hal ini, kita dapat menggunakan fungsi logsumexp() dari perpustakaan SciPy:

 import numpy as np
from scipy. special import logsumexp

#define two NumPy arrays
array1 = np. array ([[1100, 1050]])
array2 = np. array ([[1200, 4000]])

#perform complex mathematical operation
n.p. exp (logsumexp(-3*array1) - logsumexp(-3*array2))

2.7071782767869983e+195

Perhatikan bahwa hasilnya sangat besar tetapi kami tidak menerima kesalahan apa pun karena kami menggunakan fungsi matematika khusus dari perpustakaan SciPy yang dirancang untuk menangani jenis angka ini.

Dalam banyak kasus, ada baiknya mencari fungsi khusus di perpustakaan SciPy yang dapat menangani operasi matematika ekstrem, karena fungsi ini dirancang khusus untuk komputasi ilmiah.

Catatan : Anda dapat menemukan dokumentasi online lengkap untuk fungsi logsumexp() 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

Tambahkan komentar

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