Функция ldexp
Функция ldexp вычисляет значение выражения x * 2**y для каждого элемента переданного массива.
Первый параметр x - массив мантисс, второй параметр y - массив показателей степени.
Если один из параметров является скаляром, он автоматически расширяется до формы другого.
Функция возвращает массив с результатами вычислений.
Для целочисленных типов данных возможно переполнение, поэтому рекомендуется использовать типы с плавающей запятой.
Синтаксис
np.ldexp(x, y)
Пример
Давайте вычислим произведение мантисс и степеней двойки для массива чисел:
import numpy as np
x = np.array([1, 2, 3, 4])
y = np.array([2, 3, 1, 0])
res = np.ldexp(x, y)
print(res)
Результат выполнения кода:
[ 4. 16. 6. 4.]
Пример
Давайте используем скалярное значение для второго аргумента:
import numpy as np
x = np.array([0.5, 1.5, 2.5, 3.5])
res = np.ldexp(x, 3)
print(res)
Результат выполнения кода:
[ 4. 12. 20. 28.]
Пример
Давайте выполним обратную операцию с помощью функции frexp для проверки результата:
import numpy as np
arr = np.array([8, 16, 32, 64])
mantissa, exponent = np.frexp(arr)
res = np.ldexp(mantissa, exponent)
print(res)
Результат выполнения кода:
[ 8. 16. 32. 64.]