读者大家好!欢迎来到 NumPy Arctan2 教程。在本教程中,我们将了解 NumPy 库提供的一种特殊三角函数,即 arctan2。让我们开始吧。
另请阅读:NumPy Arctan – 完整指南
Arctan2 – 快速概述
- arctan2是一个四象限反三角函数,这意味着 arctan2 函数的输出角度可以位于四个象限中的任何一个。
- 它需要两个数字作为参数。
- 该函数根据传递给它的值返回[-pi, pi]范围内的值。
什么是 NumPy Arctan2?
NumPy Arctan2 是 NumPy 库提供的三角函数之一。
它需要两个参数x1 和 x2 并返回x1/x2的反正切(tan 逆),正确选择象限。
我们可以通过NumPy.arctan2()来访问该函数。
语法:numpy.arctan2(x1, x2)
其中x1和x2分别表示点的 Y 坐标和 X 坐标。
另请阅读:NumPy Arccos – 完整指南
象限中的符号约定
XY 平面分为四个相等的部分,称为象限。每个象限中的点对于 X 坐标和 Y 坐标具有不同的符号。
象限 | x 坐标 | y 坐标 |
第一象限 | 正 (+) | 正 (+) |
第二象限 | 消极的 (-) | 正 (+) |
第三象限 | 消极的 (-) | 消极的 (-) |
第四象限 | 正 (+) | 消极的 (-) |
使用 NumPy Arctan2 函数
我们已经完成了理论部分,让我们编写一些代码来使我们的理解更清晰。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 号
|
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 ))) |
输出
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度(也是第四象限的角度)
要点: arctan2通过正确选择象限来计算反正切。
将 NumPy 数组与 Arctan2 相结合
示例 – 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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))) |
输出
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
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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))) |
输出
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 的元素级反正切值。
在示例 2 中,a是点的 Y 坐标值的 NumPy 数组,b是点的 X 坐标值的 NumPy 数组,这两个数组作为参数传递给 arctan2 函数,该函数计算a/b 的逐元素 arctan2。
任务:将 NumPy arctan2 函数与linspace
NumPy 的函数结合使用并观察输出。
Arctan 和 Arctan2 之间的区别
NumPy 反正切 | Numpy arctan2 |
arctan 是一个 2 象限反函数。 | arctan2 是一个 4 象限反函数。 |
范围是从-90 度到90 度。 | 范围为 -180 度至 180 度。 |
采用单个输入。 | 需要两个输入。 |
将单个 NumPy 数组作为输入。 | 采用两个 NumPy 数组作为输入。 |
以上是对NumPy 库的arctan和arctan2函数的快速概述。
概括
这就是 NumPy Arctan2 函数的全部内容。本教程的关键要点是 arctan2 函数是 arctan 函数的扩展。我们正在计算反正切,正确选择象限。
阅读本文两遍,可以让您对 arctan2 函数有更清晰的理解。我将撰写更多有关 Python 各种主题的文章。在此之前,请继续学习并探索更多有趣的文章。