geekdoc-python-zh/docs/askpython/numpy-mod.md

210 lines
4.2 KiB
Markdown
Raw Permalink Normal View History

2024-10-20 12:24:46 +08:00
# NumPy mod——NumPy 中模数运算符的完整指南
> 原文:# t0]https://www . aspython . com/python-modules/num py/numpy-mod
你好,欢迎来到这个关于 **Numpy mod** 的教程。在本教程中,我们将学习 **NumPy mod()** 方法,也将看到许多关于相同的例子。让我们开始吧!
* * *
## 什么是 NumPy mod
NumPy 中的`mod()`方法返回两个给定数组相除的元素余数。Python 中的`%`运算符也返回除法的余数,类似于`mod()`函数。
我们将在本教程接下来的章节中看到演示该函数用法的例子。
* * *
## NumPy mod 的语法
```py
numpy.mod(x1, x2, out=None)
```
| **参数** | **描述** | **必需/可选** |
| x1 (array_like) | 红利数组。 | 需要 |
| x2(类似数组) | 除数数组。 | 需要 |
| 在外 | 放置结果的替代输出数组。它必须具有与预期输出相同的形状。 | 可选择的 |
**返回:**返回除法的元素余数。如果 *x1**x2* 都是标量,那么结果也是标量值。
* * *
## 例子
现在让我们开始使用 numpy.mod 方法,这样我们可以理解输出。
### 当两个元素都是标量时
```py
import numpy as np
dividend = 15
divisor = 7
ans = np.mod(dividend, divisor)
print("Dividend =", dividend, "\nDivisor =", divisor)
print(dividend, "%", divisor, "=", ans)
```
**输出:**
```py
Dividend = 15
Divisor = 7
15 % 7 = 1
```
两个元素都是标量的简单情况。7*2=147*3=21所以 15 不能被 7 整除,余数在这里是 1。
* * *
### 使用 numpy.mod()对标量和数组求模
```py
import numpy as np
dividend = [13, 8, 16]
divisor = 7
ans = np.mod(dividend, divisor)
print("Dividend =", dividend, "\nDivisor =", divisor)
print(dividend, "%", divisor, "=", ans)
```
**输出:**
```py
Dividend = [13, 8, 16]
Divisor = 7
[13, 8, 16] % 7 = [6 1 2]
```
在这种情况下,**被除数**数组中的所有元素都被除数一个接一个地除,并且每个除法的余数都存储在结果数组中。
输出计算如下:
13% 7 = 6
8% 7 = 1
16% 7 = 2
我们也可以如下反转元素:
```py
import numpy as np
dividend = 7
divisor = [7, 5, 3]
ans = np.mod(dividend, divisor)
print("Dividend =", dividend, "\nDivisor =", divisor)
print(dividend, "%", divisor, "=", ans)
```
**输出:**
```py
Dividend = 7
Divisor = [7, 5, 3]
7 % [7, 5, 3] = [0 2 1]
```
这里,**除数**数组中的每个元素除以**被除数**即 7余数存储在输出数组中。因此输出被计算为:
7%7 = 0
7%5 = 2
7%3 = 1
* * *
### 当两个元素都是一维数组时的模数
```py
import numpy as np
dividend = [30, 58, 35]
divisor = [5, 9, 4]
ans = np.mod(dividend, divisor)
print("Dividend =", dividend, "\nDivisor =", divisor)
print(dividend, "%", divisor, "=", ans)
```
**输出:**
```py
Dividend = [30, 58, 35]
Divisor = [5, 9, 4]
[30, 58, 35] % [5, 9, 4] = [0 4 3]
```
这里,两个数组中相同位置的元素进行除法运算,并计算余数。即被除数[0]除以除数[0]等等。这只不过是元素级的划分。
输出计算如下:
```py
dividend[0] % divisor[0] = 30%5 = 0
dividend[1] % divisor[1] = 58%9 = 4
dividend[2] % divisor[2] = 35%4 = 3
```
* * *
### 当两个元素都是二维数组时
```py
import numpy as np
dividend = [[16, 15], [24, 23]]
divisor = [[4, 7], [10, 9]]
ans = np.mod(dividend, divisor)
print("Dividend =", dividend, "\nDivisor =", divisor)
print(dividend, "%", divisor, "=\n", ans)
```
**输出:**
```py
Dividend = [[16, 15], [24, 23]]
Divisor = [[4, 7], [10, 9]]
[[16, 15], [24, 23]] % [[4, 7], [10, 9]] =
[[0 1]
[4 5]]
```
与上面 1 维数组的例子相同,这里也进行元素式除法,余数计算如下:
第 1 行:
```py
dividend[0][0] % divisor[0][0] = 16%4 = 0
dividend[0][1] % divisor[0][1] = 15%7 = 1
```
第 2 行:
```py
dividend[1][0] % divisor[1][0] = 24%10 = 4
dividend[1][1] % divisor[1][1] = 23%9 = 5
```
* * *
## 结论
仅此而已!在本教程中,我们学习了 **Numpy mod** 方法,并使用该方法练习了不同类型的示例。如果你想了解更多关于 NumPy 的信息,请随意浏览我们的 [NumPy 教程](https://www.askpython.com/python-modules/numpy)。
* * *
## 参考
* [NumPy mod 官方文档](https://numpy.org/doc/stable/reference/generated/numpy.mod.html)