[Numpy-discussion] Importance of order when summing values in anarray

Bruce Southey bsouthey at gmail.com
Tue Dec 9 09:51:43 EST 2008


Nadav Horesh wrote:
> The highest accuracy is obtained when you sum an acceding ordered series, and the lowest accuracy with descending ordered. In between you might get a variety of rounding errors.
>
>   Nadav. 
>
> -----הודעה מקורית-----
> מאת: numpy-discussion-bounces at scipy.org בשם Hanni Ali
> נשלח: ג 09-דצמבר-08 16:07
> אל: Discussion of Numerical Python
> נושא: [Numpy-discussion] Importance of order when summing values in anarray
>  
> Hi All,
>
> I have encountered a puzzling issue and I am not certain if this is a
> mistake of my own doing or not. Would someone kindly just look over this
> issue to make sure I'm not doing something very silly.
>
> So, why would the sum of an array have a different value depending on the
> order I select the indices of the array?
>
>   
>>>> vector[[39, 46, 49, 50, 6, 9, 12, 14, 15, 17, 21]].sum()
>>>>         
> 8933281.8757099733
>   
>>>> vector[[6, 9, 12, 14, 15, 17, 21, 39, 46, 49, 50]].sum()
>>>>         
> 8933281.8757099714
>   
>>>> sum(vector[[39, 46, 49, 50, 6, 9, 12, 14, 15, 17, 21]])
>>>>         
> 8933281.8757099733
>   
>>>> sum(vector[[6, 9, 12, 14, 15, 17, 21, 39, 46, 49, 50]])
>>>>         
> 8933281.8757099714
>
> Any thoughts?
>
> Cheers,
>
> Hanni
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>   
Also, increase the numerical precision as that may depend on your 
platform especially given the input values above are ints. Numpy has 
float128 and int64 that will minimize rounding error.

Bruce



More information about the NumPy-Discussion mailing list