问题描述
使用Scipy,我想按照一定的概率密度随机抽取一个样本。我考虑的概率密度函数是在实线上定义的,它取决于我在 numpy.array 中重新组合的 k 个参数,记为形状 (1,k) 的 X。
import scipy.stats as st
import numpy as np
import numpy.random as npr
class CustomGaussian(st.rv_continuous):
def _argcheck(self,X):
return True
def _pdf(self,x,X):
return (1+np.prod(X*np.exp(-X**2 / 2.))*x*np.exp(-x**2 / 2.))*(np.exp(-x**2 / 2.) / np.sqrt(2.0 * np.pi))
k=3
CustomGaussian_Sample = CustomGaussian(name='CustomGaussian_Sample',shapes='X')
X=npr.uniform(0,1,size=(1,k))
print(CustomGaussian_Sample.rvs(shapes='X'))
当我只想要一个单一的实现时,它会返回一个形状为 (,k) 的数组,就像经典的单变量分布一样,但有 d 个参数。有什么建议吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)