python - 如何从自定义分布编写抽样算法?

标签 python algorithm numpy

我正在生成随机星系,其视线速度来自正态分布,随机位置也来自二维高斯。从以下人员给出的 NFW 配置文件 中绘制这些位置更实际一些:

rho(r) = rho_0/(r/R_s*(1+r/R_s)^2

其中 rho_0R_s 是常量参数。

如何编写算法从该分布中采样?

基本上,我正在尝试找出遵循这种密度分布的数百个星系。

我一直在使用 numpy.random.normalGaussians 中采样,但我想从 NFW 中采样> 配置文件而不是 Gaussians。我敢肯定,一些统计数据培训可能是一个很好的起点,但在正确的方向上的一点会有所帮助并且非常感谢。

最佳答案

假设您有一个函数 rho(r),它从 [0..1] 获取值并从 [0..1] 返回值,那么这很简单:

def getRhoSample():
  #get uniform random number
  value = numpy.random.random()

  #sample my custom function
  return rho(value)

关于python - 如何从自定义分布编写抽样算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24103163/

相关文章:

algorithm - 保持单词顺序的字符串组合

javascript - 遍历数组并交换邻居

python - assert equal to empty parentheses (assert x == ()) 是什么意思?

python - Python 中的 Matlab importdata() 函数等效

python - 如何检查文件是否是视频

python - 易于实现内存高效元组列表的结构

python - python 中使用 qml 中的元素显示的数组

image - 平方差和算法如何工作?

python - 合并两个数组并排序

python - Pandas 计算数据框中不同的多列并按多列分组