假设我有一个2D的numpy数组如下:
import numpy as np
v = np.array([1, 2])
我将考虑它作为一个二维平面上的向量,具有OX和OY轴。我很好奇,是否有内置的或相当优雅的方法来计算向量与OX轴之间的角度?该角度应从-PI到PI。我知道,我可以使用numpy.arctan来进行计算:
def calc_phi(v):
if v[0] > 0:
return np.arctan(v[1] / v[0])
else:
if v[1] > 0:
if v[0] < 0:
return np.pi + np.arctan(v[1] / v[0])
else:
return np.pi
elif v[1] < 0:
if v[0] < 0:
return -np.pi + np.arctan(v[1] / v[0])
else:
return -np.pi
else:
return 0.0
但这似乎不太优雅,因为我必须单独考虑x = 0和x < 0的情况。所以我认为,numpy
可能有一个特殊函数来计算它。