[Numpy-discussion] Masked Array Usage Problems
josef.pktd@gmai...
josef.pktd@gmai...
Sat Apr 10 07:17:31 CDT 2010
On Sat, Apr 10, 2010 at 3:49 AM, Lane Brooks <lane@brooks.nu> 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
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
More information about the NumPy-Discussion
mailing list