我有纯Python计算平均速度的算法:
speed = [...]
avg_speed = 0.0
speed_count = 0
for i in speed:
if i > 0: # I dont need zeros
avg_speed += i
speed_count += 1
if speed_count == 0:
return 0.0
return avg_speed / speed_count
有没有办法用 Numpy 重写这个函数?
我很惊讶没有人提出最短的解决方案:
speeds_np = np.array(speeds)
speeds_np[speeds_np>0].mean()
解释:
speedsNp > 0
创建一个大小相同且满足(内)等式的布尔数组。如果喂入speedsNp
,它只产生相应的值speedNp
其中布尔数组的值为True
。那么您需要做的就是mean()
结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)