NumPy Arctan2 – 完整指南

读者大家好!欢迎来到 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)其中x1x2分别表示点的 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 函数与linspaceNumPy 的函数结合使用并观察输出。

Arctan 和 Arctan2 之间的区别

NumPy 反正切 Numpy arctan2
arctan 是一个 2 象限反函数。 arctan2 是一个 4 象限反函数。
范围是从-90 度到90 度。 范围为 -180 度至 180 度。
采用单个输入。 需要两个输入。
将单个 NumPy 数组作为输入。 采用两个 NumPy 数组作为输入。

以上是对NumPy 库的arctanarctan2函数的快速概述。

概括

这就是 NumPy Arctan2 函数的全部内容。本教程的关键要点是 arctan2 函数是 arctan 函数的扩展。我们正在计算反正切,正确选择象限。

阅读本文两遍,可以让您对 arctan2 函数有更清晰的理解。我将撰写更多有关 Python 各种主题的文章。在此之前,请继续学习并探索更多有趣的文章

参考

NumPy 文档 – NumPy Arctan2