NumPy 中的 numpy.ldexp() 函数


要逐元素返回 **x1 * 2**x2**,请在 Python NumPy 中使用 **numpy.ldexp()** 方法。第一个参数 X1 是乘数数组。第二个参数 X2 是 2 的指数数组。如果 x1.shape != x2.shape,则它们必须可广播到公共形状(这将成为输出的形状)。

out 是结果存储到的位置。如果提供,则其形状必须与输入广播到的形状相同。如果不提供或为 None,则返回一个新分配的数组。元组(仅作为关键字参数可能)的长度必须等于输出的数量。

条件在输入上广播。在条件为 True 的位置,out 数组将设置为 ufunc 结果。在其他地方,out 数组将保留其原始值。请注意,如果通过默认的 out=None 创建未初始化的 out 数组,则其中条件为 False 的位置将保持未初始化状态。

步骤

首先,导入所需的库:

import numpy as np

要逐元素返回 x1 * 2**x2,请在 Python NumPy 中使用 numpy.ldexp() 方法。

检查浮点数:

print("Result? ", np.ldexp(5.6, np.arange(3)))

检查负浮点数:

print("Result? ", np.ldexp(-7.5, np.arange(3)))

检查整数:

print("Result? ", np.ldexp(9, np.arange(3)))

检查负整数:

print("Result? ", np.ldexp(106, np.arange(3)))

检查 NaN:

print("Result? ", np.ldexp(np.nan, np.arange(3)))

检查无穷大:

print("Result? ", np.ldexp(np.inf, np.arange(3)))

示例

import numpy as np

# To return the x1 * 2**x2, element-wise, use the numpy.ldexp() method in Python Numpy
# The 1st parameter X1 is the array of multipliers.
# The 2nd parameter X2 is the array of twos exponents.
# If x1.shape != x2.shape, they must be broadcastable to a common shape (which becomes the shape of the output).

# Check for float
print("Result? ", np.ldexp(5.6, np.arange(3)))

# Check for negative float
print("Result? ", np.ldexp(-7.5, np.arange(3)))

# Check for int
print("Result? ", np.ldexp(9, np.arange(3)))

# Check for negative int
print("Result? ", np.ldexp(106, np.arange(3)))

# Check for nan
print("Result? ", np.ldexp(np.nan, np.arange(3)))

# Check for inf
print("Result? ", np.ldexp(np.inf, np.arange(3)))

# Checking for log
print("Result? ", np.ldexp(np.log(1), np.arange(3)))

输出

Result? [ 5.6 11.2 22.4]
Result? [ -7.5 -15. -30. ]
Result? [ 9. 18. 36.]
Result? [106. 212. 424.]
Result? [nan nan nan]
Result? [inf inf inf]
Result? [0. 0. 0.]

更新于:2022年2月8日

78 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告