[Numpy-discussion] problem with poisson generators

Flavio Coelho fccoelho at gmail.com
Wed Jul 13 04:22:05 EDT 2005

I am definetly glad that someone has also stumbled onto the same problem. 

But it is nevertheless intriguing, that you can run poisson a million times 
with mean zero or negative(it assumes zero mean inthis case) without any 
problems by itself. But when I call it within my code, the rate of error is 
very high (I would say it returns a wrong result every time, but I haven't 
checked every answer).

Meanwhile, my solution will be:

import rpy

n = rpy.r.rpois(n,mean)

I don't feel I can trust poisson while this "funny" behavior is still 
If someone has any Idea of how I could trace this bug please tell me, and 
I'll hunt it down. At least I can reproduce it in a very specific context. 



2005/7/12, Sebastian Haase <haase at msg.ucsf.edu>:
> Hi Flavio!
> I had reported this long time ago and this list (about numarray).
> Somehow this got more or less dismissed. If I recall correctly the 
> argument
> was that nobody could reproduce it (I ran this on Debian Woody ,py2.2, 
> (with
> CVS numarray at the time).
> I ended up writting my own wrapper(s):
> def poissonArr(shape=defshape, mean=1):
> from numarray import random_array as ra
> if mean == 0:
> return zeroArrF(shape)
> elif mean < 0:
> raise "poisson not defined for mean < 0"
> else:
> return ra.poisson(mean, shape).astype(na.UInt16)
> def poissonize(arr):
> from numarray import random_array as ra
> return na.where(arr<=0, 0, ra.poisson(arr)).astype(na.UInt16)
> (I use the astype(na.UInt16) because of some OpenGL code)
> Just last week had this problem on a windows98 computer (python2.4).
> This should get sorted out ...
> Thanks for reporting this problem.
> Sebastian Haase
> On Tuesday 12 July 2005 13:32, Flavio Coelho wrote:
> > Hi,
> >
> > I am having problems with the poisson random number generators of both
> > Numarray and Numeric.
> > I can't replicate it when calling the function from the python cosonle, 
> but
> > it has consistently malfunctioned when used within one of my scripts.
> >
> > What happens is that it frequently return a value greater than zero when
> > called with zero mean: poisson(0.0)
> >
> > Unfortunately My program is too big to send attached but I have 
> confirmed
> > the malfunction by printing both the mean and the result whenever it 
> spits
> > out a wrong result.
> >
> > This is very weird indeed, I have run poisson millions of times by itsel 
> on
> > the python console, without any problems...
> >
> > I hope it is some stupid mistake, but when I replace the poisson 
> function
> > call within my program by the R equivalent command (rpois) via the rpy
> > wrapper, everything works just fine...
> >
> > any Ideas?

Flávio Codeço Coelho
registered Linux user # 386432
Great spirits have always found violent opposition from mediocrities. The
latter cannot understand it when a man does not thoughtlessly submit to
hereditary prejudices but honestly and courageously uses his intelligence.
Albert Einstein
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20050713/7374797c/attachment.html>

More information about the NumPy-Discussion mailing list