NumPy 是“Numerical Python”的缩写,是主要用于数组和多维矩阵的基本包。这个开源包提供了广泛的函数来对数组或矩阵执行全面的数学运算。
其中一个函数是fmod(
),它以逐个元素的方式提供除法余数。该函数获得的余数与其被除数(x1)具有相同的符号。
该函数的工作方式与 C 库中的 fmod() 函数完全相同。它也可与 Matlab(TM)rem
函数相媲美,切勿与 Python 模数运算符x1 % x2混淆(这是通过NumPy 中的 mod() 函数实现的。)在本文中,让我们彻底尝试理解其语法和fmod()
Python 中函数的用例。
为什么使用 fmod()?
fmod() 函数用于逐个元素计算给定数组的余数。所需参数包括两个整数数组或元组 – 第一个被视为被除数,后者被视为除数。约定限制了负股息和除数的模运算的结果。
在 fmod 的情况下,结果的符号是被除数,而在余数的情况下,结果的符号是除数。Matlab(TM)rem
函数和 fmod 函数是等效的。
Numpy fmod() 的语法
numpy.fmod(x1, x2, / , out = None , * , where = True ) |
参数
- x1: array_like,必需
- 数组被视为被除数
- x2:类数组,必需
- 数组被视为除数
- out:ndarray,None,或 ndarray 和 None 的元组,可选
- 保存结果的地方。如果提供的话,它必须具有输入广播到的形状。在没有任何输入或没有任何输入的情况下,返回新分配的数组。元组的长度(仅作为关键字参数使用)必须与输出的数量匹配。
- 其中:类似数组,可选
- 这种情况是通过输入呈现的。ufunc 结果将在条件为 True 的点处设置为 out 数组。out 数组将在所有其他位置保留其初始值。应该注意的是,如果条件为 False,则使用默认 out=None 形成的未初始化 out 数组中的位置将继续未初始化。
- **kwargs,可选
- 对于其他仅关键字参数
Numpy fmod() 的实现
在实现该功能之前,请确保在 IDE 中导入 NumPy 包。为此,请在 IDE 中运行以下代码行。
import numpy as np |
让我们尝试以最简单的方式按元素返回余数,只需提供两个必需的参数 – 被除数数组和除数数组。另请注意,在第二个示例中,除数是单数,因此被除数数组的所有元素都相同。
x1 = ([ 2 , - 4 , 11 ]) x2 = ([ 1 , 3 , 5 ]) ans = np.fmod(x1, x2) print (x1) print (x2) print (ans) y1 = ([ 9 , 8 , 7 , 6 , 5 , 4 ]) y2 = np.fmod(y1, 2 ) print (y1) print (y2) |
输出
让我们再看一组简单的例子来理解 fmod() 函数中的符号约定。
z1 = [ - 5 , 6 , 11 ] z2 = [ 2 , 3 , - 4 ] z3 = np.fmod(z1, z2) print (z3) |
第一个元素的结果为负,因为被除数为负,但在第三个元素的情况下,结果仍然为正,因为被除数为正,因此我们可以得出结论,除数的符号确实会影响输出的符号,即完全依赖股息。
输出
在下一个示例中,ones()用于创建一个数组,其中所有元素都指定为“1”。请注意,即使是零也会被赋予负号,只是因为被除数被赋予了负号。
w1 = np.full(( 1 , 3 ),[ - 5 , 9 , 0 ]) w2 = np.ones(( 1 , 3 )) w3 = np.fmod(w1,w2) print (w3) |
输出
概括
NumPy 包是为处理数组和多维矩阵而构建的。fmod() 是获取x1(被除数)除以 x2 (除数)余数的直接方法 。如果x1 和 x2都是标量,则这是一个标量 。
参考
https://numpy.org/doc/stable/reference/ generated/numpy.fmod.html