NumPy fmod() – 返回除法的按元素余数。

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