我在Python中使用积分方法vegas,下面是一个最小的示例
import vegas
sigma = lambda x: 1e-7 * x
integrator = vegas.Integrator([[0.0, 1.0]])
cross_section = integrator(sigma, nitn = 10, neval = 10000)
print cross_section
print type(cross_section)
将打印
[5.0000113(83)e-08]
<class 'vegas._vegas.RAvgArray'>
数据类型未知,我当然想将其转换为float
类型数据,我知道我可以手工完成
float(str(cross_section[0]).split('(')[0] + str(cross_section[0]).split(')')[1])
但这对我来说似乎并不聪明,是否有一种巧妙的方式来处理此类数据?
提前谢谢!
答案 0 :(得分:1)
根据{{3}},[RAvgArray]元素是
gvar.GVar
(来自gvar
模块(如果存在)),代表高斯随机变量。
gvar.GVar
对象又具有属性mean
,sdev
和var
。
您似乎想要这样:
cross_section[0].mean