[Scipy-tickets] [SciPy] #1291: stats.discrete distributions hypergeom.sf exception

SciPy Trac scipy-tickets@scipy....
Fri Oct 22 11:50:21 CDT 2010

#1291: stats.discrete distributions hypergeom.sf exception
 Reporter:  josefpktd    |       Owner:  somebody    
     Type:  defect       |      Status:  needs_review
 Priority:  normal       |   Milestone:  0.9.0       
Component:  scipy.stats  |     Version:  0.7.0       
 Keywords:               |  

Comment(by josefpktd):

 Thanks for looking into this.

 I don't think the solution is correct (just reading, I haven't tried it

 if k is a scalar in the support of the distribution, then output is a
 scalar and I don't think you can place into a scalar

 >>> a = np.array(5)[()]
 >>> a
 >>> np.place(a, [True], [6])
 >>> a
 >>> a = np.array([5])[()]; np.place(a, [True], [6])
 >>> a

 this is a test case that I think should break
 >>> stats.hypergeom.sf(1,10,2,5)

 Can you try the scalar case with your changes?

 One possible solution might be to check whether goodargs is empty, and
 call place ( and ._sf) only if it is non-empty. ouput has only
 self.badvalue, so returning output without a call to _sf might work

 As a note: I don't think we have tests for any of the methods if all
 values are outside, but cdf seems to work

 >>> stats.hypergeom.cdf(5,10,2,5)
 >>> stats.hypergeom.cdf(-5,10,2,5)

 So it might also be possible to check how cdf manages empty *goodargs.

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

More information about the Scipy-tickets mailing list