|
From: Flavio C. <fcc...@gm...> - 2005-07-13 11:18:55
|
Well, I am definetly glad that someone has also stumbled onto the same problem.= =20 But it is nevertheless intriguing, that you can run poisson a million times= =20 with mean zero or negative(it assumes zero mean inthis case) without any=20 problems by itself. But when I call it within my code, the rate of error is= =20 very high (I would say it returns a wrong result every time, but I haven't= =20 checked every answer). Meanwhile, my solution will be: import rpy n =3D rpy.r.rpois(n,mean) I don't feel I can trust poisson while this "funny" behavior is still=20 there... If someone has any Idea of how I could trace this bug please tell me, and= =20 I'll hunt it down. At least I can reproduce it in a very specific context.= =20 thanks, Fl=E1vio 2005/7/12, Sebastian Haase <ha...@ms...>: >=20 > 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=20 > argument > was that nobody could reproduce it (I ran this on Debian Woody ,py2.2,=20 > (with > CVS numarray at the time). >=20 > I ended up writting my own wrapper(s): > def poissonArr(shape=3Ddefshape, mean=3D1): > from numarray import random_array as ra > if mean =3D=3D 0: > return zeroArrF(shape) > elif mean < 0: > raise "poisson not defined for mean < 0" > else: > return ra.poisson(mean, shape).astype(na.UInt16) >=20 > def poissonize(arr): > from numarray import random_array as ra > return na.where(arr<=3D0, 0, ra.poisson(arr)).astype(na.UInt16) >=20 > (I use the astype(na.UInt16) because of some OpenGL code) >=20 > Just last week had this problem on a windows98 computer (python2.4). >=20 > This should get sorted out ... >=20 > Thanks for reporting this problem. > Sebastian Haase >=20 >=20 >=20 >=20 > 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,= =20 > but > > it has consistently malfunctioned when used within one of my scripts. > > > > What happens is that it frequently return a value greater than zero whe= n > > called with zero mean: poisson(0.0) > > > > Unfortunately My program is too big to send attached but I have=20 > confirmed > > the malfunction by printing both the mean and the result whenever it=20 > spits > > out a wrong result. > > > > This is very weird indeed, I have run poisson millions of times by itse= l=20 > on > > the python console, without any problems... > > > > I hope it is some stupid mistake, but when I replace the poisson=20 > function > > call within my program by the R equivalent command (rpois) via the rpy > > wrapper, everything works just fine... > > > > any Ideas? >=20 --=20 Fl=E1vio Code=E7o 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 |