NumPy divide() 函数
NumPy divide() 函数用于在两个数组或一个数组和一个标量之间执行逐元素除法。
它将第一个数组逐个元素地除以第二个数组,并返回一个包含结果的新数组。如果除数为零,则结果为 inf 或 nan,具体取决于上下文。此函数还可以处理不同形状数组的广播。
语法
以下是 NumPy divide() 函数的语法 -
numpy.divide(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
参数
此函数接受以下参数 -
- x1:分子输入数组。两个数组应具有相同的形状,或者它们必须能够广播为共同的形状。
- x2:分母输入数组。与 x1 类似,它应该具有与 x1 相同的形状,或者可以广播为通用形状。
- out(可选): 存储结果的位置。如果提供,则必须具有输入广播到的形状。如果未提供或为 None,则返回一个新分配的数组。
- where(可选): 此条件通过输入进行广播。在条件为 True 的位置,out 数组将设置为 ufunc 结果。否则,它将保留其原始值。
- casting(可选): 控制可能发生的数据转换类型。默认为"same_kind"。
- order(可选): 控制结果的内存布局顺序。 'C' 表示 C 阶,'F' 表示 Fortran 阶,'A' 表示如果输入均为 F 则为 'F',否则为 'C','K' 表示尽可能匹配输入的布局。
- dtype(可选): 返回数组的类型以及元素被划分到的累加器的类型。除非指定 dtype,否则默认使用 x1 和 x2 的 dtype。
- subok(可选): 如果为 True,则将传递子类,否则返回的数组将被强制为基类数组。
返回值
此函数返回输入数组 x1 和 x2 的元素商。如果提供了 out,则返回对 out 的引用。
示例:divide() 函数的基本用法
在以下示例中,我们创建两个一维数组,并使用 divide() 函数执行逐元素除法 -
import numpy as np # 创建两个一维数组 arr1 = np.array([10, 20, 30, 40]) arr2 = np.array([2, 4, 5, 10]) # 执行逐元素除法 result = np.divide(arr1, arr2) print(result)
以下是获得的输出 -
[5. 5. 6. 4.]
示例:使用广播划分数组
在此示例中,我们演示了如何使用 divide() 函数进行广播。我们创建一个二维数组,并用一个一维数组对其进行除法运算 -
import numpy as np # 创建二维数组 arr1 = np.array([[10, 20, 30], [40, 50, 60]]) # 创建一维数组 arr2 = np.array([2, 4, 6]) # 使用广播执行元素级除法 result = np.divide(arr1, arr2) print(result)
这将产生以下结果 -
[[ 5. 5. 5. ] [20. 12.5 10. ]]
示例:使用"out"参数
在本例中,我们使用 out 参数将除法结果存储在指定数组中 -
import numpy as np # 创建两个一维数组 arr1 = np.array([10, 20, 30, 40]) arr2 = np.array([2, 4, 5, 10]) # 创建输出数组 out_arr = np.empty(4) # 执行逐元素除法并将结果存储在 out_arr 中 np.divide(arr1, arr2, out=out_arr) print(out_arr)
以下是上述代码的输出 -
[5. 5. 6. 4.]
示例:使用 "where" 参数
在本例中,我们使用 where 参数来有条件地执行除法运算 -
import numpy as np # 创建两个一维数组 arr1 = np.array([10, 20, 30, 40]) arr2 = np.array([2, 4, 5, 10]) # 创建条件数组 condition = np.array([True, False, True, False]) # 在条件为 True 的情况下执行逐元素除法 result = np.divide(arr1, arr2, where=condition) print(result)
得到的输出如下所示 −
[5.e+000 0.e+000 6.e+000 8.e-323]
numpy_arithmetic_operations.html