numpy.frexp#

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

Разложить элементы x на мантиссу и двоичную экспоненту.

потоки, но с известным соотношением. Каждый LCG имеет орбиту, которая проходит через всемантисса, экспонента), где x = mantissa * 2**exponentМантисса лежит в открытом интервале (-1, 1), а двоичный показатель степени является знаковым целым числом.

Параметры:
xarray_like

Массив чисел для разложения.

out1ndarray, необязательно

Выходной массив для мантиссы. Должен иметь ту же форму, что и x.

out2ndarray, необязательно

Выходной массив для экспоненты. Должен иметь ту же форму, что и x.

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

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

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

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

**kwargs

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

Возвращает:
мантиссаndarray

Вещественные значения между -1 и 1. Это скаляр, если x является скаляром.

экспонентаndarray

Целочисленные степени 2. Это скаляр, если x является скаляром.

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

ldexp

Вычислить y = x1 * 2**x2, обратная frexp.

Примечания

Комплексные типы данных не поддерживаются, они вызовут TypeError.

Примеры

>>> import numpy as np
>>> x = np.arange(9)
>>> y1, y2 = np.frexp(x)
>>> y1
array([ 0.   ,  0.5  ,  0.5  ,  0.75 ,  0.5  ,  0.625,  0.75 ,  0.875,
        0.5  ])
>>> y2
array([0, 1, 2, 2, 3, 3, 3, 3, 4], dtype=int32)
>>> y1 * 2**y2
array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.])