numpy.mod
-
用例:
numpy.mod(x1, x2, /, out=None, *, where=True, casting=‘same_kind’, order=‘K’, dtype=None, subok=True[, signature, extobj]) = <ufunc ‘remainder’> -
功能:
计算两数组对应位置元素的余数。
当对数组执行地板除floor_divide
之后会有余数。numpy.mod
和Python中取模运算符x1 % x2
的计算结果相同,计算结果的符号和除数x2
保持一致。在MATLAB中mod
函数和Python中的np.remainder
函数计算结果相同。 -
注意:
切忌将以下内容混淆:- Python 3.7 中的
math.remainder
函数和C语言中的remainder
函数计算的是round(x1 / x2)
(四舍五入)的余数。 - MATLAB中的
rem
函数和C语言中的%
运算符计算的是int(x1 / x2)
(向0取整)的余数。
- Python 3.7 中的
-
参数
变量名 | 数据类型 | 功能 |
---|---|---|
x1 | 数组型变量 | 被除数。 |
x2 | 数组型变量 | 除数。如果x1.shape != x2.shape ,它们必须广播到相同维度(此维度也为输出结果的维度)。 |
out | n维数组,None,n维数组组成的元组,可选参数 | 结果的保存位置。若提供此参数,其维度必须和输入值广播后的维度保持一致。若不提供此参数或参数值为None,返回新创建的数组。若此参数为元组,其长度和返回值的个数保持一致。 |
where | 数组型变量,可选参数 | 用默认值即可。 |
- 返回值
变量名 | 数据类型 | 功能 |
---|---|---|
y | n维数组 | floor_divide(x1, x2) 商的余数。如果x1和x2均为标量那么y也为标量。 |
- 备注
当x1和x2均为整数组成的数组且x2为0时,该函数返回0。mod
和remainder
的计算结果一致
- 示例:
import numpy as np
print('两个数组取模:{}'.format(np.remainder([4, 7], [2, 3])))
print('广播后取模:{}'.format(np.remainder(np.arange(7), 5)))
print('当除数为0时:{}'.format(np.remainder(np.arange(7), 0)))
print('当除数为负数时:{}'.format(np.remainder(5, -2)))
两个数组取模:[0 1]
广播后取模:[0 1 2 3 4 0 1]
当除数为0时:[0 0 0 0 0 0 0]
当除数为负数时:-1