问题描述
我有一个参数数组a,b,loc和scale用于scipy.stats
中的truncnorm。
首先,我创建了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 (将#修改为@)