On Sun, Apr 11, 2010 at 1:00 AM, Lane Brooks <[email protected]> wrote: > > On Apr 10, 2010, at 5:17 AM, [email protected] wrote: > >> On Sat, Apr 10, 2010 at 3:49 AM, Lane Brooks <[email protected]> wrote: >>> I am trying out masked arrays for the first time and having some >>> problems. I have a 2-D image as dtype=numpy.int16 >>> >>> I create a mask of all False to not mask out any pixels. >>> >>> I calculate the mean of the image original image and it comes out >>> ~597. >>> I calculate the mean of the masked array and it comes out differently >>> around -179. It produces the same negative mean value no matter what >>> masks I try, e.g. (all True, all False, etc). Furthermore there >>> are no >>> negative samples in the entire array. >>> >>> Any ideas on what am I doing wrong? >>> >>> Here is some sample code showing the behavior: >>> >>> In [1]: img.dtype, img.shape >>> Out[1]: (dtype('int16'), (3200, 3456)) >>> >>> In [2]: mask = numpy.zeros(img.shape, dtype=bool) >>> >>> In [3]: imgma = ma.masked_array(img, mask) >>> >>> In [4]: img.mean() >>> Out[4]: 597.15437617549185 >>> >>> In [5]: imgma.mean() >>> Out[5]: -179.56858678747108 >>> >>> In [6]: imgma.min() >>> Out[6]: 25 >>> >>> In [7]: numpy.__version__ >>> Out[7]: '1.3.0' >>> >>> In [8]: numpy.ma.__version__ >>> Out[8]: '1.0' >> >> Just a guess untill Pierre replies: >> >> It looks to me like an integer overflow bug. Can you try >> >> imgma.mean(dtype=float) >> >> to do the accumulation with floating points? >> >> Josef >>> > > Indeed using dtype=float solved the problem. The numpy.mean doc string > says the default accumulator type for all int types is a float. Why is > ma.mean different, especially since the ma.mean doc string says to > see the numpy.mean doc string?
I think it is a bug in ma.mean, since the docstring clearly specifies the casting to float. Can you file a ticket? I think Pierre will look at it when he finds time. Thanks, Josef > > Thanks > Lane > _______________________________________________ > NumPy-Discussion mailing list > [email protected] > http://mail.scipy.org/mailman/listinfo/numpy-discussion > _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
