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

210 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)