我有在纯 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 重写这个函数吗?
最佳答案
numpy.average
函数可以接收一个 weights
参数,您可以在其中放置一个从某些条件生成的 bool 数组应用于数组本身 - 在这种情况下,一个大于 0 的元素:
average_speed = numpy.average(speeds, weights=(speeds > 0))
希望对你有帮助
关于python - 有条件的 Numpy 均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11084710/