[email protected] 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel