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,)