跳转到主要内容

用于从统计分布中随机采样的实用工具

项目描述

简单随机分布采样

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 查看哈希值)

上传时间 Python 3

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面