相关疑难解决方法(0)

错误的numpy平均值?

我通常使用大量的模拟工作.有时,我需要计算粒子集的质心.我注意到在许多情况下,numpy.mean()返回的平均值是错误的.我可以弄清楚这是由于累加器的饱和.为了避免这个问题,我可以在小组粒子中将所有粒子的总和分开,但这是不舒服的.任何人都有如何以优雅的方式解决这个问题的想法?

只是为了提高你的好奇心,下面的例子产生类似于我在模拟中观察到的东西:

import numpy as np
a = np.ones((1024,1024), dtype=np.float32)*30504.00005
Run Code Online (Sandbox Code Playgroud)

如果你检查最大值和最小值,你得到:

a.max() 
30504.0
a.min() 
30504.0
Run Code Online (Sandbox Code Playgroud)

但是,平均值是:

a.mean()
30687.236328125
Run Code Online (Sandbox Code Playgroud)

你可以弄清楚这里出了什么问题.使用dtype = np.float64时不会发生这种情况,因此解决单精度问题应该不错.

python numpy

7
推荐指数
1
解决办法
4021
查看次数

标签 统计

numpy ×1

python ×1