Mam tablicę Nx1, która odpowiada rozkładowi prawdopodobieństwa, tj. Suma elementów sumuje się do 1. Jest ona reprezentowana jako regularna tablica numpy. Ponieważ N może być względnie duże, np. 10 lub 20, wiele z poszczególnych elementów jest bardzo zbliżonych do 0. Znajduję, że kiedy biorę log (my_array), pojawia się błąd "FloatingPointError: niepoprawna wartość napotkana w logu". Zauważ, że jest to po ustawieniu seterr (invalid = 'raise') w numpy celowo.rejestrowanie bardzo małych wartości za pomocą numpy/scipy w Pythonie
Jak sobie z tym poradzić? Chciałbym reprezentować wektory odpowiadające rozkładowi prawdopodobieństwa i ich dziennik przejęcia bez zaokrąglania do 0, od tego czasu kończę na logowaniu (0), który podnosi błąd.
dzięki.
Prawdopodobieństwo zera jest szczególnym przypadkiem, dlaczego uważasz, że jest to to samo co niezerowe prawdopodobieństwo? Dlaczego nie po prostu odfiltrować go z danych i pracować tylko z niezerowym? –
Czy dwukrotnie sprawdziłeś, czy wszystkie wartości w dystrybucji są naprawdę pozytywne? Brak wartości ujemnych i żadnych wartości, które są dokładnie zerowe? Rzeczywiście małe wartości nie powinny mieć znaczenia. –
Taki sam problem jak: http://stackoverflow.com/questions/3704570/in-python-small-floats-tending-to-zero – monkut