gpt4 book ai didi

Python:如何使用 1 个 lambda 函数进行多种浮点格式设置

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:37 25 4
gpt4 key购买 nike

我有一个 numpy 数组 [2.15295647e+01, 8.12531501e+00, 3.97113829e+00, 1.00777250e+01]并想对其进行格式化,使其看起来像这样 [21.53, 08.13, 03.97, 10.08]

float_formatter = lambda x: "%.2f" % x
np.set_printoptions(formatter={'float_kind':float_formatter})

我如何调整它以包含 2 个 float 操作?

我需要类似 %02d %.2f % (x,y) 的东西,但不知道如何更改 lambda 函数来执行此操作。

最佳答案

据我了解,您只想用两个前导零填充数组值并打印到小数点后两位。您需要做的就是修改格式字符串:

In [1]: "%05.2f" %np.pi
Out[1]: '03.14'

分解一下,5 表示格式化字符串的总长度为 5 个字符(包括小数点),0 表示您要用前导零填充,.2 表示您需要小数点后两位数字。

因此,如果您想要 3 个前导零和 4 个小数位,您可以这样做:

In [2]: "%08.4f" %np.pi
Out[2]: '003.1416

如果你只是想用前导空格而不是零来填充,你可以省略总长度前面的0:

In [3]: "%8.4f" %np.pi
Out[3]: ' 3.1416'

您可以在 table of conversion flags here 中阅读其他选项.

要将其设置为您的新格式化程序,您只需执行以下操作:

In [4]: float_formatter = lambda x: "%05.2f" %x

In [5]: np.set_printoptions(formatter={'float_kind':float_formatter})

关于Python:如何使用 1 个 lambda 函数进行多种浮点格式设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020449/

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