Я обычно работаю с огромными симуляторами. Иногда мне нужно вычислить центр масс набора частиц. Я заметил, что во многих ситуациях среднее значение, возвращаемое numpy.mean(), неверно. Я могу понять, что это связано с насыщением аккумулятора. Чтобы избежать проблемы, я могу разделить суммирование по всем частицам в небольшом наборе частиц, но это неудобно. У кого-нибудь есть и идея, как решить эту проблему элегантным способом?Неверное среднее значение numpy?
Только для piking вашего любопытства, в следующем примере производить что-то подобное тому, что я наблюдаю в моей симуляции:
import numpy as np
a = np.ones((1024,1024), dtype=np.float32)*30504.00005
если вы проверить максимальные и минимальные значения, вы получите:
a.max()
30504.0
a.min()
30504.0
однако, среднее значение:
a.mean()
30687.236328125
Вы можете понять, что что-то не так Вот. Этого не происходит при использовании dtype = np.float64, поэтому должно быть хорошо решить проблему для одиночной точности.
Если какой-либо из этих ответов решит вашу проблему, вы должны ее принять. – tacaswell