我经常发现自己编写的代码应该适用于单个数字和numpy
数组。如果该代码需要区分大小写,我要么使用一些奇怪的结构,比如添加numpy.sign
或类似的多个,或者我发现自己编写像
try:
lon[x<0] -= pi
except IndexError:
if x<0:
lon -= pi
是否有一种简单的惯用方法来编写lon[x<0] -= pi
之类的语句,以便它们适用于数字和数组?
答案 0 :(得分:1)
如果速度不是问题,您可以这样做:
lon -= (x<0)*pi
总能给出正确的答案,但在数组的情况下,完成的减法(按0)比需要的多。
答案 1 :(得分:1)
另一种选择是使用支持数组和标量的numpy.where
:
lon -= np.where(x<0, pi, 0.)