有效地约束-180和180之间的值

时间:2015-09-29 12:57:29

标签: numpy

我有一个用户输入,它是经度的矢量(它也可以只是一个数字)。这可以是任何数字(我无法控制它)。我需要将经度投射到-180到180的范围,然后再将它们传递到C延伸,例如, 190度应变为-170度(无剪裁)。在numpy中进行此计算的最有效方法是什么?

2 个答案:

答案 0 :(得分:6)

angle_desired = ((angle + 180) % 360) - 180

%是mod运算符

答案 1 :(得分:0)

Numpy的模数运算符和np.choose应该可以。

x=np.array([50,500,-190,60,390,270,181,-179,180,-180,179])
y=np.mod(x,360)
print y
z=np.choose(y<180,[y-360,y])
print z


[ 50 140 170  60  30 270 181 181 180 180 179]
[  50  140  170   60   30  -90 -179 -179 -180 -180  179]