首页 > 解决方案 > 如何将 RAvg 类型数据转换为在 Python 中正确浮动?

问题描述

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

但这对我来说似乎并不聪明,有没有一种巧妙的方法来处理这些数据?

先感谢您!

标签: pythontypes

解决方案


根据维加斯源代码

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

gvar.GVar反过来,根据它们的文档,对象具有属性mean和。sdevvar

看起来你想要这个:

cross_section[0].mean

推荐阅读