On Thursday 15 November 2007 08:51:11 pm Eric Firing wrote:
> Darren Dale wrote:
> > On Thursday 15 November 2007 06:12:32 pm Eric Firing wrote:
> >> [EMAIL PROTECTED] wrote:
> >>> Revision: 4325
> >>>
> >>> http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4325&view=rev
> >>> Author:   dsdale
> >>> Date:     2007-11-15 13:23:27 -0800 (Thu, 15 Nov 2007)
> >>>
> >>> Log Message:
> >>> -----------
> >>> added npy.seterr(invalid='ignore') to beginning of axes.py, to silence
> >>> repeated warnings created by finding extrema of arrays containing nans
> >>> (discovered during calls to errorbar)
> >>
> >> Darren,
> >>
> >> Is this hiding a problem that will pop up farther down the line?
> >
> > I don't know, this problem was pretty well hidden to begin with. I
> > consider it a bug that numpy doesnt gracefully handle finding the extrema
> > of an array that containing nans. Why should this warrant a warning?
>
> There are major differences of opinion, or differences of application,
> as to how nans and other floating point oddities should be handled.  As
> a result, numpy was designed to allow the user to specify how floating
> point exceptions should be handled.  Matlab-style handling of
> nans--which I have always found enormously useful in Matlab--imposes a
> significant computational cost, and neither the style nor the cost is
> acceptable to a substantial fraction of the numpy community.  Therefore
> numpy supplies nanmax and nanmin for the case where you want to ignore
> nans, and amax and amin for the case where a nan means something is
> wrong and you don't want to ignore the nan. (There are also nanargmax,
> nanargmin, and nansum.)
>
> >> I think the strategy so far has been that inputs to plotting functions
> >> should use masked arrays, not nans, and correspondingly, the plotting
> >> functions should handle masked arrays gracefully. Although nans are
> >> used at some internal stages, I don't think they are handled correctly
> >> from end to end.  We could add nan checks at the early argument
> >> processing stage, but it would slow things down a bit.
> >
> > Do you mean that matplotlib does not support input that contains nans?
> > Should the average user really have to care if they are passing input
> > with nans in it? I think not. I must have misunderstood.
>
> I think that nans "do the right thing" in some places but not others;
> they have never been explicitly supported in plot function input.  The
> design decision was to use masked arrays, which are more general,
> instead.  I have thought about a possible alternative, in which masked
> arrays would be immediately converted to nan-filled arrays, and nans
> would be fully used and supported internally as well as in the
> interface.  I never came to the conclusion that this was a good idea,
> though, because masked arrays have some advantages.  Therefore I have
> been trying to improve masked array use and support in mpl and in numpy.

I reverted my change this morning.

I think nan's and inf's are a fact of life. They sometimes pop up in my work, 
and would prefer that matplotlib handle them properly. But I haven't 
contributed much to the actual plotting functions and don't know much about 
the advantages of masked arrays, so I'll defer to you.

Darren

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to