我不明白为什么将 float32-Array 转换为 float64-Array 会显着改变数组的平均值。
import numpy as n
a = n.float32(100. * n.random.random_sample((10000000))+1000.)
b = a.astype(n.float64)
print n.mean(a), a.dtype, a.shape
print n.mean(b), b.dtype, b.shape
结果(应该是大约 1050,所以 float64 是正确的):
1028.346368 float32 (10000000,)
1049.98284473 float64 (10000000,)