我讲了一行代码,我想把它从numpy语法转换成常规的python2.7语法:
SunAz=SunAz + (SunAz < 0) * 360
资料来源: https://github.com/Sandia-Labs/PVLIB_Python/blob/master/pvlib/pvl_ephemeris.py#L147
如果我们假设numpy数组是一维的,是否可以将其转换为常规的python 2.7语法,如下所示:
newSunAz = []
for item in SunAz:
if item < 0:
newItem = item + item*360
newSunAz.append(newItem)
else:
newSunAz.append(item)
什么??你知道吗
谢谢你的帮助。你知道吗
试试这个:
主要区别在于,大多数操作符应用于普通Python列表中的list对象并返回单个结果,而它们返回一个numpy数组,其中每个项都是应用于numpy数组的原始数组上相应项的操作的结果。你知道吗
[更新]
迈克的回答是对的。我最初的回答是:
我不确定这是否是翻译。线路
(SunAz < 0)
创建一个布尔数组,如果角度为负,则为True,否则为false。将False
乘以常数得到0
,True
被解释为1
。这一行实际上是这样写的,“如果角度为负,则将其移动360度,否则将其保留”。你知道吗所以更直译的是:
相关问题 更多 >
编程相关推荐