如何转换RAvg类型数据以在Python中正确浮动?

时间:2019-03-25 21:25:53

标签: python types

我在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])

但这对我来说似乎并不聪明,是否有一种巧妙的方式来处理此类数据?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

根据vegas source code

  

[RAvgArray]元素是gvar.GVar(来自gvar模块(如果存在)),代表高斯随机变量。

根据{{​​3}},

gvar.GVar对象又具有属性meansdevvar

您似乎想要这样:

cross_section[0].mean