用于从统计分布中随机采样的实用工具
项目描述
简单随机分布采样
SRDS主要是一个围绕scipy统计函数(scipy.stats)的包装。它使得从参数化分布中进行采样变得更加容易,并提供了一些加速随机采样的工具。
示例
截断或拒绝采样
srds添加了一些类,使得利用scipy统计分布更加容易。要从一个对数正态分布(σ = 0.25)中采样,但截断在0.5和2之间,可以使用BoundRejectionSampler
from srds import ParameterizedDistribution as PDist, BoundRejectionSampler
dist = PDist.lognorm(0.25)
sampler = BoundRejectionSampler(dist, 0.5, 2)
x = sampler.sample(10)
快速采样单个值
在scipy统计分布上调用dist.rvs
是计算上昂贵的。这对于像这样做的代码来说是个问题:
# will be slow (calls dist.rvs 10000 times)
for i in range(10000):
x = dist.sample()
# ...
srds提供了一个BufferedSampler
,从一个分布中抽取更大的样本,然后从该样本返回。
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()
# ...
从群体中采样
您可以使用PopulationSampler
从一个离散集合中抽取样本,并且还可以使用权重进行采样。
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
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
srds-0.1.0.tar.gz (6.0 kB 查看哈希值)
构建版本
srds-0.1.0-py3-none-any.whl (7.5 kB 查看哈希值)
关闭
srds-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 353301a06cc93687aea21ccd617c3787fa92e8d67e87c1fbe92667af80b43939 |
|
MD5 | 8f1d3b0ae46482f4e9c3435cb9c53fee |
|
BLAKE2b-256 | 1ad54190867931a2993cb009047d2ef6dc891a49d5b903689bc36c5a54158671 |
关闭
srds-0.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 587d18796867d161348298b4de288700f91cd2b51f2e286812286820654833a0 |
|
MD5 | e10157cc8bfdf58947dfe532b9ff979f |
|
BLAKE2b-256 | 0250eae1e45eb34c2ebf827766518777846e7331ffbcd88534d4fb66f05201ed |