ведение журнала очень маленьких значений с помощью numpy / scipy в Python

У меня есть массив Nx1, который соответствует распределению вероятностей, то есть сумма элементов равна 1. Он представлен как обычный массив numpy. Поскольку N может быть относительно большим, например 10 или 20, многие отдельные элементы довольно близки к 0. Я обнаружил, что когда я беру журнал (my_array), я получаю ошибку «FloatingPointError: в журнале обнаружено недопустимое значение». Обратите внимание, что это происходит после намеренной установки seterr (invalid = 'raise') в numpy.

Как я могу решить эту числовую проблему? Я хотел бы представить векторы, соответствующие распределению вероятностей, и их логарифм без округления до 0, с тех пор я получаю лог (0), что вызывает ошибку.

спасибо.

5
задан 17 November 2010 в 16:17
поделиться