Я пытаюсь оценить энтропию случайных величин (RV), которая включает вычисление шага: p_X * log(p_X)
.Например,
import numpy as np
X = np.random.rand(100)
binX = np.histogram(X, 10)[0] #create histogram with 10 bins
p_X = binX / np.sum(binX)
ent_X = -1 * np.sum(p_X * np.log(p_X))
Иногда p_X
должен быть нулем, что математически делает весь член нулем.Но python делает p_X * np.log(p_X)
как NaN
и делает полное суммирование как NaN
.Есть ли способ управлять (без какой-либо явной проверки NaN), заставляя p_X * np.log(p_X)
давать ноль всякий раз, когда p_X
равен нулю?Любое понимание и исправление приветствуется и спасибо заранее :)