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

177 lines
6.5 KiB
Markdown
Raw Permalink Normal View History

2024-10-20 12:24:46 +08:00
# NumPy arctan 2完整指南
> 原文:# t0]https://www . aspython . com/python-modules/num py/numpy-arctan2
读者你好!欢迎学习 NumPy Arctan2 教程。在本教程中,我们将了解 NumPy 库提供的一个特殊三角函数,即 arctan2。让我们开始吧。
***亦读:[【NumPy Arctan-完全指南】](https://www.askpython.com/python-modules/numpy/numpy-arctan)***
## arctan 2快速概述
* **反正切 2** 是一个四象限反三角函数,这意味着反正切 2 函数的输出角度可以在四个象限中的任何一个。
* 它以**两个数**作为参数。
* 该函数根据传递给它的值返回一个在范围 **[-pipi]** 内的值。
![](img/c6d5d98df8f984e94d515921312c3954.png)
## 什么是 NumPy Arctan2
NumPy Arctan2 是 NumPy 库提供的三角函数之一。
它采用**两个参数** x1 和 x2并返回正确选择象限的 **x1/x2** 的**反正切**(反正切)。​
我们可以通过 **NumPy.arctan2()** 来访问该函数。
语法:`**numpy.arctan2(x1, x2)**`其中 **x1****x2** 分别代表点的 Y 坐标和 X 坐标。
***也读作:[【NumPy Arccos-完全指南】](https://www.askpython.com/python-modules/numpy/numpy-arccos)***
## 象限中的符号约定
XY 平面被分成四个相等的部分,称为象限。每个象限中的点对于 X 坐标和 Y 坐标具有不同的符号。
| **象限** | ****x 坐标**** | **y 坐标** |
| 第一象限 | 阳性(+) | 正(+)
|
| 第二象限 | 负(-) | 阳性(+) |
| 第三象限 | 负(-) | 负(-) |
| 第四象限 | 阳性(+) | 负(-) |
## 使用 NumPy Arctan2 函数
我们已经完成了理论部分,让我们写一些代码来使我们的理解更加清晰。
```py
import numpy as np
# Output angle is in first quadrant
print("Arctan2 of (1,1) in radians is:",np.arctan2(1,1))
print("Arctan2 of (1,1) in degrees is:",np.degrees(np.arctan2(1,1)))
# Output angle is in second quadrant
print("\nArctan2 of (1,-1) in radians is:",np.arctan2(1,-1))
print("Arctan2 of (1,-1) in degrees is:",np.degrees(np.arctan2(1,-1)))
# Output angle is in third quadrant
print("\nArctan2 of (-1,-1) in radians is:",np.arctan2(-1,-1))
print("Arctan2 of (-1,-1) in degrees is:",np.degrees(np.arctan2(-1,-1)))
# Output angle is in fourth quadrant
print("\nArctan2 of (-1,1) in radians is:",np.arctan2(-1,1))
print("Arctan2 of (-1,1) in degrees is:",np.degrees(np.arctan2(-1,1)))
```
**输出**
```py
Arctan2 of (1,1) in radians is: 0.7853981633974483
Arctan2 of (1,1) in degrees is: 45.0
Arctan2 of (1,-1) in radians is: 2.356194490192345
Arctan2 of (1,-1) in degrees is: 135.0
Arctan2 of (-1,-1) in radians is: -2.356194490192345
Arctan2 of (-1,-1) in degrees is: -135.0
Arctan2 of (-1,1) in radians is: -0.7853981633974483
Arctan2 of (-1,1) in degrees is: -45.0
```
**注意:**在所有示例中arctan2 函数的第一个参数是该点的 Y 坐标值,第二个参数是该点的 X 坐标值。
让我们来理解上面的每一个例子。
* **第 4 行:**在本例中,两个参数都是正的,因此点位于第一象限,计算出 x1/x2 的反正切等于 45 度。
* **第 8 行:**在本例中,第一个参数(Y 坐标)是正的,但第二个参数(X 坐标)是负的,因此该点位于第二象限,计算 x1/x2 的反正切等于 135 度(这也是第二象限中的角度)。
* **第12 行:**在本例中,第一个参数(Y 坐标)是负的,第二个参数(X 坐标)也是负的,因此该点位于第三象限,计算 x1/x2 的反正切等于-135 度(这也是第三象限中逆时针方向的角度)。
* **第 16 行:**在本例中,第一个参数(Y 坐标)为负,第二个参数(X 坐标)为正,因此该点位于第四象限,计算 x1/x2 的反正切等于-45 度(也是第四象限的角度)
**要点:**反正切 2 通过正确选择象限计算反正切。
## 结合 NumPy 数组和 Arctan2
#### 示例1
```py
import numpy as np
# Example 1
# Creating a NumPy Array of the y-coordinates of the points
x1 = np.array((-1 , 1.732 , 1.414 , 0.5 , 1))
# Creating a NumPy Array of the y-coordinates of the points
x2 = np.array((1 , -1 , -0.5 , 0.5 , 1))
print("Arctan2 Values in radians :\n",np.arctan2(x1 , x2))
print("Arctan2 Values in degrees :\n",np.degrees(np.arctan2(x1 , x2)))
```
**输出**
```py
Arctan2 Values in radians :
[-0.78539816 2.0944078 1.9106807 0.78539816 0.78539816]
Arctan2 Values in degrees :
[-45\. 120.00072778 109.47394016 45\. 45\. ]
```
#### 示例2
```py
import numpy as np
# Example 2
# Creating a NumPy Array of the y-coordinates of the points
a = np.array((-5 , 0.5 , 1 , -1))
# Creating a NumPy Array of the y-coordinates of the points
b = np.array((4 , 1 , -1 , -1.732))
print("Arctan2 Values in radians :\n",np.arctan2(a , b))
print("Arctan2 Values in degrees :\n",np.degrees(np.arctan2(a , b)))
```
**输出**
```py
Arctan2 Values in radians :
[-0.89605538 0.46364761 2.35619449 -2.61798118]
Arctan2 Values in degrees :
[ -51.34019175 26.56505118 135\. -149.99927222]
```
在示例 1 中, **x1** 是点的 Y 坐标值的 NumPy 数组。类似地, **x2** 是点的 X 坐标值的 NumPy 数组,这两个数组作为参数传递给 arctan2 函数,该函数计算 x1/x2 的**元素的 arctan** 。
在示例 2 中, **a** 是点的 Y 坐标值的 NumPy 数组, **b** 是点的 X 坐标值的 NumPy 数组,这两个数组作为参数传递给 arctan2 函数,该函数计算 a/b 的**元素-arctan2**
**任务:**使用 NumPy arctan2 函数和 NumPy 的`**linspace**`函数,观察输出。
## Arctan 和 Arctan2 的区别
| **NumPy arctan** | **Numpy arctan2** |
| arctan 是一个 2 象限反函数。 | arctan2 是一个四象限反函数。 |
| 范围从-90 度到 90 度。 | 范围从-180 度到 180 度。 |
| 接受单个输入。 | 接受两个输入。 |
| 接受单个 NumPy 数组作为输入。 | 接受两个 NumPy 数组作为输入。 |
以上是对 NumPy 库的 **[arctan](https://www.askpython.com/python-modules/numpy/numpy-arctan)** 和 **arctan2** 函数的快速概述。
## 摘要
这就是关于 NumPy Arctan2 函数的全部内容。从本教程中得到的关键信息是arctan2 函数是 arctan 函数的扩展。我们正在计算反正切,选择正确的象限。
通读两遍这篇文章,让你对 arctan2 函数有一个清晰的了解。我将发表更多关于 Python 各种主题的文章。在此之前,请继续学习并探索更多有趣的文章。
## 参考
[num py documentationnum py arctan 2](https://numpy.org/doc/stable/reference/generated/numpy.arctan2.html)