Di solito lavoro con enormi simulazioni. A volte, ho bisogno di calcolare il centro di massa dell'insieme di particelle. Ho notato che in molte situazioni, il valore medio restituito da numpy.mean() è sbagliato. Posso capire che è dovuto alla saturazione dell'accumulatore. Per evitare il problema, posso suddividere la somma su tutte le particelle in un piccolo insieme di particelle, ma è scomodo. Qualcuno ha idea di come risolvere questo problema in modo elegante?Valore medio numpy errato?
Solo per piking la vostra curiosità, il seguente esempio produrre qualcosa di simile a quello che osservo nel mio simulazioni:
import numpy as np
a = np.ones((1024,1024), dtype=np.float32)*30504.00005
se si controlla l'valori massimi e minimi, si ottiene:
a.max()
30504.0
a.min()
30504.0
tuttavia, il valore medio è:
a.mean()
30687.236328125
si può capire che qualcosa non va Qui. Questo non sta accadendo quando si usa dtype = np.float64, quindi dovrebbe essere bello risolvere il problema per precisione singola.
Se una di queste risposte ha risolto il problema, è necessario accettarlo. – tacaswell