NumPy subtract() 函数
NumPy subtract() 函数用于对两个数组执行逐元素减法。它接受两个形状相同的输入数组,并减去相应的元素。
如果数组形状不同,则适用广播规则。该函数返回一个包含减法结果的新数组。
语法
以下是 NumPy subtract() 函数的语法 -
numpy.subtract(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 的引用。
示例:subtract() 函数的基本用法
在以下示例中,我们创建两个一维数组,并使用 subtract() 函数执行逐元素减法 -
import numpy as np # 创建两个一维数组 arr1 = np.array([10, 20, 30, 40]) arr2 = np.array([1, 2, 3, 4]) # 执行逐元素减法 result = np.subtract(arr1, arr2) print(result)
以下是获得的输出 -
[ 9 18 27 36]
示例:使用广播对数组进行减法运算
在本例中,我们演示了如何使用 subtract() 函数进行广播运算。我们创建一个二维数组,并从中减去一个一维数组 -
import numpy as np # 创建二维数组 arr1 = np.array([[10, 20, 30], [40, 50, 60]]) # 创建一维数组 arr2 = np.array([1, 2, 3]) # 使用广播执行元素减法 result = np.subtract(arr1, arr2) print(result)
这将产生以下结果 -
[[ 9 18 27] [39 48 57]]
示例:使用"out"参数
在此示例中,我们使用 out 参数将减法结果存储在指定的数组中 -
import numpy as np # 创建两个一维数组 arr1 = np.array([10, 20, 30, 40]) arr2 = np.array([1, 2, 3, 4]) # 创建输出数组 out_arr = np.empty(4) # 执行逐元素减法并将结果存储在 out_arr 中 np.subtract(arr1, arr2, out=out_arr) print(out_arr)
以下是上述代码的输出 -
[ 9. 18. 27. 36.]
示例:使用 "where" 参数
在本例中,我们使用 where参数用于有条件地执行减法运算 -
import numpy as np # 创建两个一维数组 arr1 = np.array([10, 20, 30, 40]) arr2 = np.array([1, 2, 3, 4]) # 创建条件数组 condition = np.array([True, False, True, False]) # 当条件为 True 时,执行逐元素减法 result = np.subtract(arr1, arr2, where=condition) print(result)
输出结果如下所示 -
[ 9 0 27 16]
numpy_arithmetic_operations.html