From: <ef...@us...> - 2011-02-10 07:37:11
|
Revision: 8969 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8969&view=rev Author: efiring Date: 2011-02-10 07:37:05 +0000 (Thu, 10 Feb 2011) Log Message: ----------- LogNorm: speed-up by dealing with mask explicitly Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/colors.py Modified: trunk/matplotlib/lib/matplotlib/colors.py =================================================================== --- trunk/matplotlib/lib/matplotlib/colors.py 2011-02-10 01:21:27 UTC (rev 8968) +++ trunk/matplotlib/lib/matplotlib/colors.py 2011-02-10 07:37:05 UTC (rev 8969) @@ -921,9 +921,17 @@ mask=mask) #result = (ma.log(result)-np.log(vmin))/(np.log(vmax)-np.log(vmin)) # in-place equivalent of above can be much faster - np.ma.log(result, result) - result -= np.log(vmin) - result /= (np.log(vmax) - np.log(vmin)) + resdat = result.data + mask = result.mask + if mask is np.ma.nomask: + mask = (resdat <= 0) + else: + mask |= resdat <= 0 + np.putmask(resdat, mask, 1) + np.log(resdat, resdat) + resdat -= np.log(vmin) + resdat /= (np.log(vmax) - np.log(vmin)) + result = np.ma.array(resdat, mask=mask, copy=False) if is_scalar: result = result[0] return result This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |