numpy arctan2错误或使用问题?

She*_*284 1 python numpy python-2.7

我正在将一些函数从Excel电子表格翻译成python.根据numpy docs:arctan2,我需要使用aranan2的atan2 .问题是两个结果甚至没有关闭:

oc = 23.4384863405
sal = 89.7814630647
sra = np.arctan2(np.cos(np.deg2rad(sal)),
         np.cos(np.deg2rad(oc))*np.sin(np.deg2rad(sal)))
results: Excel = 1.566714757 Numpy = 0.00415720646  ??
Run Code Online (Sandbox Code Playgroud)

我相信Excel结果是正确的.这是错误的numpy.

现在要么我没有正确使用arctan2,要么atan2在numpy中不是arctan2,或者numpy中有一个bug,或者我刚刚完全迷失在这里.

我正在使用python版本2.7.2和numpy 1.6.2

请问有什么想法吗?谢谢

DSM*_*DSM 12

Excel文档:

ATAN2函数的语法是:

ATAN2(x坐标,y坐标)

来自numpy文档:

numpy.arctan2(x1,x2 [,out])

x1/x2的逐元素反正切正确选择象限.

选择象限(即分支),使得arctan2(x1,x2)是在原点结束并穿过点(1,0)的光线之间以弧度表示的有角度角,并且光线在原点处结束并通过通过点(x2,x1).(注意角色颠倒:"y坐标"是第一个函数参数,"x坐标"是第二个.)

他们以相反的顺序接受他们的论点.从而:

In [31]: arctan2(cos(deg2rad(sal)), cos(deg2rad(oc))*sin(deg2rad(sal)))
Out[31]: 0.0041572064598812417

In [32]: arctan2(cos(deg2rad(oc))*sin(deg2rad(sal)), cos(deg2rad(sal)))
Out[32]: 1.5666391203350154
Run Code Online (Sandbox Code Playgroud)

  • 请注意,numpy使用的是与大多数编程语言相同的参数顺序,即在C,Python,Java等标准库中. (6认同)