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