Simple Random Distribution Sampling
SRDS is mainly a wrapper around scipy's statistical functions (scipy.stats). It makes it easier to sample from parameterized distributions and provides tools that accelerate random sampling.
Examples
Truncation or rejection sampling
srds adds several classes that make it easier to utilize scipy statistical distributions.
To sample from a log-normal distribution with σ = 0.25, but truncate at 0.5 and 2, the BoundRejectionSampler
helps:
from srds import ParameterizedDistribution as PDist, BoundRejectionSampler
dist = PDist.lognorm(0.25)
sampler = BoundRejectionSampler(dist, 0.5, 2)
x = sampler.sample(10)
Fast sampling of single values
calling dist.rvs on a scipy statistical distribution is computationally expensive. This is problematic for code that
does something like:
# will be slow (calls dist.rvs 10000 times)
for i in range(10000):
x = dist.sample()
# ...
srds provides a BufferedSampler that draws a larger sample from a distribution, and subsequently returns from that
sample.
from srds import BufferedSampler
dist = BufferedSampler(dist)
# will be much faster! (calls dist.rvs only 10 times with a sample size of 1k)
for i in range(10000):
x = dist.sample()
# ...
Sampling from populations
You can use the PopulationSampler to draw from a discrete set, and also bias the sampling with weights.
from srds import PopulationSampler
sampler = PopulationSampler(['a', 'b', 'c'], [8, 1, 1])
sampler.sample() # will return 'a' 8 out of 10 times on average
sampler.sample(10) # returns a list containing items from ['a', 'b', 'c'] in random order
Metadata
Release files for srds 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| srds-0.1.0.tar.gz | 6.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| srds-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.6 kB
Release files / srds-0.1.0.tar.gz
| Download URL | srds-0.1.0.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
353301a06cc93687aea21ccd617c3787fa92e8d67e87c1fbe92667af80b43939
|
|
BLAKE2b-256 checksum How to use checksums |
1ad54190867931a2993cb009047d2ef6dc891a49d5b903689bc36c5a54158671
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5
|
Release files / srds-0.1.0-py3-none-any.whl
| Download URL | srds-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
587d18796867d161348298b4de288700f91cd2b51f2e286812286820654833a0
|
|
BLAKE2b-256 checksum How to use checksums |
0250eae1e45eb34c2ebf827766518777846e7331ffbcd88534d4fb66f05201ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5
|