numpy.logaddexp2#

numpy.logaddexp2(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, сигнатура]) = 'logaddexp2'>#

Логарифм суммы экспонент входных данных по основанию 2.

Вычисляет log2(2**x1 + 2**x2). Эта функция полезна в машинном обучении, когда вычисленные вероятности событий могут быть настолько малы, что превышают диапазон обычных чисел с плавающей запятой. В таких случаях вместо этого можно использовать логарифм по основанию 2 вычисленной вероятности. Эта функция позволяет складывать вероятности, хранящиеся таким образом.

Параметры:
x1, x2array_like

Входные значения. Если x1.shape != x2.shape, они должны быть транслируемы к общей форме (которая становится формой вывода).

выходndarray, None или кортеж из ndarray и None, опционально

Место для сохранения результата. Если предоставлено, оно должно иметь форму, в которую транслируются входные данные. Если не предоставлено или None, возвращается вновь выделенный массив. Кортеж (возможен только как ключевой аргумент) должен иметь длину, равную количеству выходов.

гдеarray_like, необязательный

Это условие транслируется на вход. В местах, где условие истинно, выход массив будет установлен в результат ufunc. В других местах выход массив сохранит своё исходное значение. Обратите внимание, что если неинициализированный выход массив создается через стандартный out=None, позиции внутри неё, где условие ложно, останутся неинициализированными.

**kwargs

Для других аргументов, доступных только по ключевым словам, смотрите документация ufunc.

Возвращает:
результатndarray

Логарифм по основанию 2 от 2**x1 + 2**x2. Это скаляр, если оба x1 и x2 являются скалярами.

Смотрите также

logaddexp

Логарифм суммы экспонент входных данных.

Примеры

>>> import numpy as np
>>> prob1 = np.log2(1e-50)
>>> prob2 = np.log2(2.5e-50)
>>> prob12 = np.logaddexp2(prob1, prob2)
>>> prob1, prob2, prob12
(-166.09640474436813, -164.77447664948076, -164.28904982231052)
>>> 2**prob12
3.4999999999999914e-50