On Mon, Feb 15, 2010 at 9:24 PM, Bruce Southey <bsout...@gmail.com> wrote: > On Mon, Feb 15, 2010 at 8:35 PM, Pierre GM <pgmdevl...@gmail.com> wrote: >> On Feb 15, 2010, at 8:51 PM, David Carmean wrote: >>> On Sun, Feb 14, 2010 at 03:22:04PM -0500, Pierre GM wrote: >>> >>>> >>>> I'm sorry, I can't follow you. Can you post a simpler self-contained >>>> example I can play with ? >>>> Why using np.nanmin/max ? These functions are designed for ndarrays, to >>>> avoid using a masked array: can't you just use min/max on the masked array >>>> ? >>> >>> I was using np.nanmin/max because I did not yet understand how masked >>> arrays worked; perhaps the >>> docs for those methods need a note indicating that "If you can take the >>> (small?) memory hit, >>> use Masked Arrays instead". Now that I know different... I'm going to >>> drop it unless you >>> reall want to dig into it. >> >> >> I'm curious. Can you post an excerpt of your array, so that I can check what >> goes wrong? >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@scipy.org >> http://mail.scipy.org/mailman/listinfo/numpy-discussion >> > Hi, > David, please file a bug report. > > I think is occurs with np.nansum, np.nanmin and np.nanmax. Perhaps > some thing with the C99 changes as I think it exists with numpy 1.3. > > I think this code shows the problem with Linux and recent numpy svn: > > import numpy as np > uut = np.array([[2, 1, 3, np.nan], [5, 2, 3, np.nan]]) > msk = np.ma.masked_invalid(uut) > msk > np.nanmin(msk, axis=1) > msk > > $ python > Python 2.6 (r26:66714, Nov 3 2009, 17:33:18) > [GCC 4.4.1 20090725 (Red Hat 4.4.1-2)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. >>>> import numpy as np >>>> uut = np.array([[2, 1, 3, np.nan], [5, 2, 3, np.nan]]) >>>> msk = np.ma.masked_invalid(uut) >>>> msk > masked_array(data = > [[2.0 1.0 3.0 --] > [5.0 2.0 3.0 --]], > mask = > [[False False False True] > [False False False True]], > fill_value = 1e+20) > >>>> np.nanmin(msk, axis=1) > masked_array(data = [1.0 2.0], > mask = [False False], > fill_value = 1e+20) > >>>> msk > masked_array(data = > [[2.0 1.0 3.0 nan] > [5.0 2.0 3.0 nan]], > mask = > [[False False False False] > [False False False False]], > fill_value = 1e+20) > > > Bruce >
Hi, I filed this ticket and hopefully the provided code is sufficient for a test: http://projects.scipy.org/numpy/ticket/1421 The bug is with the _nanop function because nansum, nanmin, nanmax, nanargmin and nanargmax have the same issue. Bruce Bruce _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion