Расчет xlogx с numpy - PullRequest
       8

Расчет xlogx с numpy

0 голосов
/ 06 мая 2018

Я хочу вычислить x ln x с произвольно малым положительным x, или x = 0 без снижения или деления на ноль. Как мне это сделать?

Я прогуглил "python numpy xlnx ИЛИ xlogx" без какого-либо значимого результата.

x = 0
a = x * np.log(x)
b = np.log(np.power(x,x))
print(a,b)

for i in range(-30,30,10):
    x = 10.**-i 
    a = x * np.log(x)
    b = np.log(np.power(x,x))
    print(a,b)

nan 0.0
6.90775527898e+31 inf
4.60517018599e+21 inf
230258509299.0 inf
0.0 0.0
-2.30258509299e-09 -2.30258512522e-09
-4.60517018599e-19 0.0

Изменить, чтобы добавить: Это была еще одна проблема, вызывающая мою проблему. Но как лучше рассчитать xlogx? Простой метод вызывает nans, когда x = 0.

1 Ответ

0 голосов
/ 06 мая 2018

Вы можете сделать это с помощью функции xlogy в scipy:

from scipy.special import xlogy
from numpy import log

>>> xlogy(10, 10)

23.0258509299

>>> 10 * log(10)

23.0258509299

>>> xlogy(0, 0)

0.0
...