[Scipy-tickets] [SciPy] #1398: problem with numpy 0's in stats.poisson.rvs

SciPy Trac scipy-tickets@scipy....
Sat Apr 9 09:30:36 CDT 2011


#1398: problem with numpy 0's in stats.poisson.rvs
-------------------------+--------------------------------------------------
 Reporter:  parejkoj     |       Owner:  somebody
     Type:  defect       |      Status:  new     
 Priority:  normal       |   Milestone:          
Component:  scipy.stats  |     Version:  0.8.0   
 Keywords:               |  
-------------------------+--------------------------------------------------

Comment(by josefpktd):

 Besides using numpy.random.poisson, in your case you could just create
 random variables for the non-zero pixels, something like (not tested)

 {{{
 mask = source_image > 0

 obs = np.zeros_like(source_image)
 obs[mask] = poisson.rvs(source_image[mask])
 }}}

 That would save on calculating degenerate random variables.
 This is easy enough to do with rvs, but if we change _argcheck to allow
 for the degenerate case mu=0, we would have to patch all methods for this
 in a similar way.

 That's possible, and there are similar corner cases for other
 distributions. However, I worry that this will slow down the standard case
 for these distributions.

 A patch with performance timing would be useful for these cases, since I
 never checked what the performance penalty for including and special
 casing corner cases is.
 (My guess is that the reduction in speed might be large for distributions
 that rely on generic calculations, which need to call the _* methods
 thousands of times, but maybe not so high for distributions that have
 explicit formulas for all the main methods.)

-- 
Ticket URL: <http://projects.scipy.org/scipy/ticket/1398#comment:5>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.


More information about the Scipy-tickets mailing list