我在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])
但这对我来说似乎并不聪明,是否有一种操纵这些数据的巧妙方法?
先感谢您!
[RAvgArray]元素是
gvar.GVar
s(来自gvar
模块,如果存在)并表示高斯随机变量。
根据gvar.GVar
,their documentation对象依次具有mean
,sdev
和var
的属性。
看起来你想要这个:
cross_section[0].mean