gpt4 book ai didi

Python Uncertainties 模块,ufloat 无法解压变量

转载 作者:行者123 更新时间:2023-11-28 16:40:41 26 4
gpt4 key购买 nike

我正在使用 python 2.7 和名为“不确定性”的模块来分析实验数据。我有两个数组,polycoeffs 和 cov,它们是由 numpy 函数 polyfit 生成的。我已经设法从 cov 数组中拉出前导对角线,并且我正在尝试将这些值与名为 uncert_coeffs 的列表中的适当系数相匹配,该列表具有不确定性函数“ufloat”。这是代码:

polycoeffs,cov=polyfit(wav,trans,6,cov=True) #wav and trans are themselves, arrays.
print "Polycoeffs= ",polycoeffs

print "Cov= ",cov

cov_diag=[]
for element in diag(cov):
cov_diag.append(str(element))
print "The diagonal of the covariant matrix= ",cov_diag
ord_counter=6
uncert_coeffs=[]
cov_index=0

for i in polycoeffs:
uncert=(cov_diag[cov_index])
print "uncert: ",uncert
temp=ufloat("(i+/-uncert)") #error here
uncert_coeffs.append(temp)
cov_index+=1

print "The polynomial coefficients with uncertainties, are: ",uncert_coeffs

这会产生错误:

ValueError: Cannot parse (i+/-uncert): was expecting a number like 1.23+/-0.1

所以我的问题是:在这种情况下,手动组合 polycoeffs 及其不确定性会非常痛苦,我怎样才能让 ufloat 解压变量 uncert?此外,uncert 的值主要是科学记数法。

最佳答案

您传递的是文字字符串 "i+/-uncert" 而不是变量值。

假设您使用的是最新版本的不确定性,只需执行以下操作:

temp = ufloat(i, uncert)

或者,您可以将数值格式化为它们的字符串表示形式:

temp = ufloat('{}+/-{}'.format(i, uncert))

但是,没有理由不直接将值传递给 ufloat

关于Python Uncertainties 模块,ufloat 无法解压变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19621045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com