scipy.special.log_ndtr#
-
scipy.special.log_ndtr(x, выход=None) =
'log_ndtr'> # Логарифм функции кумулятивного распределения Гаусса.
Возвращает логарифм площади под стандартной гауссовской функцией плотности вероятности, проинтегрированной от минус бесконечности до x:
log(1/sqrt(2*pi) * integral(exp(-t**2 / 2), t=-inf..x))
- Параметры:
- xarray_like, вещественный или комплексный
Аргумент
- выходndarray, необязательно
Необязательный выходной массив для результатов функции
- Возвращает:
- скаляр или ndarray
Значение логарифма нормальной CDF, вычисленное в x
Смотрите также
Примечания
log_ndtrимеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окруженияSCIPY_ARRAY_API=1и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).Библиотека
CPU
GPU
NumPy
✅
н/д
CuPy
н/д
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
н/д
См. Поддержка стандарта array API для получения дополнительной информации.
Примеры
>>> import numpy as np >>> from scipy.special import log_ndtr, ndtr
Преимущество
log_ndtr(x)по сравнению с наивной реализациейnp.log(ndtr(x))наиболее очевиден при умеренных и больших положительных значенияхx:>>> x = np.array([6, 7, 9, 12, 15, 25]) >>> log_ndtr(x) array([-9.86587646e-010, -1.27981254e-012, -1.12858841e-019, -1.77648211e-033, -3.67096620e-051, -3.05669671e-138])
Результаты наивного расчёта для умеренного
xзначения имеют только 5 или 6 верных значащих цифр. Для значенийxбольше примерно 8.3, наивное выражение возвращает 0:>>> np.log(ndtr(x)) array([-9.86587701e-10, -1.27986510e-12, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00])