A better scipy.stats.uniform
Project description
A better scipy.stats.uniform
The stats
sub-package of scipy is quite cool.
In particular, it provides dozens of probability distributions implemented with a common interface.
But scipy.stats.uniform
always bugged me.
>>> from scipy import stats
>>> help(stats.uniform)
A uniform continuous random variable.
This distribution is constant between `loc` and ``loc + scale``.
Why loc + scale
? Why not scale
?
So I wrote better_uniform
: eight small lines of code that don't bug me so much.
from scipy import stats
class frozen(stats._distn_infrastructure.rv_frozen):
def __init__(self, dist, *args, **kwds):
super(frozen,self).__init__(dist, *args, **kwds)
def buniform(a, b): # b for better
dist = stats.uniform
dist.name = 'uniform'
return frozen(dist, loc=a, scale=b-a)
Now it works as I expect it to work:
d = buniform(0, 1)
d.rvs() # 0 < rv < 1
d.interval(1) # (0.0, 1.0)
d = buniform(1, 2)
d.rvs() # 1 < rv < 2
d.interval(1) # (1.0, 2.0)
# note the difference
from scipy.stats import uniform
d = uniform(1, 2)
d.rvs() # 1 < rv < 3
d.interval(1) # (1.0, 3.0)
That's it!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
better_uniform-1.0.1.tar.gz
(1.7 kB
view hashes)
Built Distribution
Close
Hashes for better_uniform-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13d867b6c801189207fc481db00014ef2defdb548babc1f0c8ea72384bc61b09 |
|
MD5 | 8ce21ac98f9b0e1653d0aa32feb8b7ff |
|
BLAKE2b-256 | b098c9ad2f9130c963662bda9435ab08ff8282097fef6725bb829a9e4bbadd22 |