数组参数的truncnorm使用问题

问题描述

我有一个参数数组a,b,loc和scale用于scipy.stats中的truncnorm。

a和b表示在标准正态分布域上定义的片段。 loc是均值的向量,scale是标准差的向量。

首先,我创建了truncnorm rv_frozen对象(例如,所附代码中的t0,t1,t2),其中包含a,b,loc和scale的各个条目,并一次计算其均值和stds。其次,我通过调用truncnorm_gen对象上的mean()std()函数并一次传递整个向量(a,b,scale和loc)来询问均值和标准差。在这两种情况下,我的均值均获得相同的结果。但是第二种方法的标准偏差是nans。有人可以解释一下这两种方法之间的区别是什么,为什么我对性传播疾病有不同的答案?

from scipy.stats import truncnorm
import numpy as np

def get_standard_normal_clips(myclip_a,myclip_b,my_mean,my_std):
    return (myclip_a - my_mean) / my_std,(myclip_b - my_mean) / my_std

myclip_a = np.array([1,2,3])
myclip_b = np.array([10,11,12])
loc = np.array([5,6,7])
scale = np.array([2,3,4])

a,b = get_standard_normal_clips(myclip_a,loc,scale)

t0 = truncnorm(a[0],b[0],loc[0],scale[0])
t1 = truncnorm(a[1],b[1],loc[1],scale[1])
t2 = truncnorm(a[2],b[2],loc[2],scale[2])

print([t0.mean(),t1.mean(),t2.mean()])
print(truncnorm.mean(a,b,scale))

print([t0.std(),t1.std(),t2.std()])
print(truncnorm.std(a,scale))

以上代码的输出为:

[5.075100219161382,6.224853845667461,7.322533883500467]

[5.07510022 6.22485385 7.32253388]

[1.8354945064651018,2.220479117810029,2.3808002011916325]

[nan nan nan]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...