mdb...@users.sourceforge.net wrote:
> Revision: 7016
>           http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7016&view=rev
> Author:   mdboom
> Date:     2009-03-31 15:22:06 +0000 (Tue, 31 Mar 2009)
> 

...

> Modified: branches/v0_98_5_maint/lib/matplotlib/transforms.py
> ===================================================================
> --- branches/v0_98_5_maint/lib/matplotlib/transforms.py       2009-03-31 
> 15:13:24 UTC (rev 7015)
> +++ branches/v0_98_5_maint/lib/matplotlib/transforms.py       2009-03-31 
> 15:22:06 UTC (rev 7016)
> @@ -975,8 +975,7 @@
>          if self._invalid:
>              points = self._transform.transform(self._bbox.get_points())
>              if ma.isMaskedArray(points):
> -                points.putmask(0.0)
> -                points = np.asarray(points)
> +                np.putmask(points, points.mask, 0.0)
>              self._points = points
>              self._invalid = 0
>          return self._points

Mike,

A cleaner version is this:

points = points.filled(0.0)

Or you can replace the conditional and the assignment with the single line:

points = np.ma.filled(points, 0.0)

Example:

In [6]:np.ma.filled([1,2,3], 0.0)
Out[6]:array([1, 2, 3])

In [7]:np.ma.filled(np.ma.array([1,2,3], mask=[False,True,False]), 0.0)
Out[7]:array([1, 0, 3])

The version you have actually can fail:

In [10]:zz = np.ma.ones(5)

In [11]:zz
Out[11]:
masked_array(data = [ 1.  1.  1.  1.  1.],
              mask = False,
        fill_value = 1e+20)


In [12]:np.putmask(zz, zz.mask, 0)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)

/home/efiring/<ipython console> in <module>()

ValueError: putmask: mask and data must be the same size



Eric

------------------------------------------------------------------------------
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to