python - 有条件的 Numpy 均值

标签 python numpy where-clause

我有在纯 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/

相关文章:

python - 回调警告: Callback error creating dash' DataTable

python - 无法在 Python 3 中的 ElementTree.Element 实例上设置属性

python - Numpy:循环替代、优化

python - 对非常大的 numpy 数组按 ID 进行分组的最快方法

mysql - 从两个具有不同列的表中进行选择,其中一个需要计数

python - 从内容所有者报告中获得YouTube yield ?

python - SQL Where 子句和 Django 时区

python - 将 pandas 数据框转换为数字; Seaborn 无法绘图

SQL Where Column1 = Column1 将只返回非空值

linq-to-entities - 我将如何改进这个作为规范的 7 行 Linq 查询?