如何使用相同格式的说明符进行数组配置或打印?



我有以下两个数组 meanA 和 stdA。我想将它们组合并生成第三个数组 C。

meanA = [86.6,87.2,85.4,86.6,83.0,87.2,92.7,80.0,86.6,87.8,89.0,87.8]
stdA = [0.08, 3.1,0.08,2.5,0.1,3.1,1.2,0.4,1.2,1.2,0.0,3.7]

我想使用格式说明符作为"%.2f+/-%.2f%%"组合这两个数组并生成第三个数组 C。我用python编写它,C = "%.2f+/-%.2f%%" % (meanA , stdA).但是,这给了我一个错误,因为TypeError: only size-1 arrays can be converted to Python scalars.

我知道此操作只能在标量上实现。但是,我想知道我们也可以在数组上做到这一点。我想避免多次写相同的行,如下所示。

C[0] = "%.2f+/-%.2f%%" % (meanA[0] , stdA[0])C[1] = "%.2f+/-%.2f%%" % (meanA[1] , stdA[1])C[2] = "%.2f+/-%.2f%%" % (meanA[2] , stdA[2])C[3] = "%.2f+/-%.2f%%" % (meanA[3] , stdA[3])C[4] = "%.2f+/-%.2f%%" % (meanA[4] , stdA[4])C[5] = "%.2f+/-%.2f%%" % (meanA[5] , stdA[5])C[6] = "%.2f+/-%.2f%%" % (meanA[6] , stdA[6])C[7] = "%.2f+/-%.2f%%" % (meanA[7] , stdA[7])C[8] = "%.2f+/-%.2f%%" % (meanA[8] , stdA[8])C[9] = "%.2f+/-%.2f%%" % (meanA[9] , stdA[9])

我想要以下输出C= [86.6+/-0.08, 87.2+/-3.1, 85.4+/-0.08, 86.6+/-2.5, 83.0+/-0.1, 87.2+/-3.1, 92.7+/-1.2, 80.0+/-0.4, 86.6+/-1.2, 87.8+/-1.2, 89.0+/-0.0, 87.8+/-3.7]

有谁知道在一行代码中执行此操作的最简单方法?

提前谢谢你!

将单个元素馈送到字符串转换器中:

["%.2f+/-%.2f%%" % (a, b) for a, b in zip(meanA, stdA)]

结果:

['86.60+/-0.08%',
'87.20+/-3.10%',
'85.40+/-0.08%',
'86.60+/-2.50%',
'83.00+/-0.10%',
'87.20+/-3.10%',
'92.70+/-1.20%',
'80.00+/-0.40%',
'86.60+/-1.20%',
'87.80+/-1.20%',
'89.00+/-0.00%',
'87.80+/-3.70%']

使用 f 字符串看起来更干净一些:

[f'{a:.2f}+-{b:.2f}%' for a, b in zip(meanA, stdA)]

相关内容

  • 没有找到相关文章

最新更新