gpt4 book ai didi

python - 如何居中对齐 numpy.savetxt 生成的文本?

转载 作者:行者123 更新时间:2023-12-01 17:31:13 25 4
gpt4 key购买 nike

我在 numpy.savetxt 周围使用了一个小包装器自动生成标题名称并为可读输出创建某种智能宽度对齐。更简单的解决方案位于 this answer .

我想知道如何指定宽度并使输出文本居中对齐,而不仅仅是文档中所示的左对齐。

numpy.savetxt 文档中,我看到以下信息:

Notes
-----
Further explanation of the `fmt` parameter
(``%[flag]width[.precision]specifier``):
flags:
``-`` : left justify

``+`` : Forces to preceed result with + or -.

``0`` : Left pad the number with zeros instead of space (see width).

width:
Minimum number of characters to be printed. The value is not truncated
if it has more characters.

文档指出 python mini format specification 上有更“详尽的资源” ,但那里的信息与对齐信息不兼容。

The meaning of the various alignment options is as follows:

Option  Meaning
'<' Forces the field to be left-aligned within the available space (this is the default for most objects).
'>' Forces the field to be right-aligned within the available space (this is the default for numbers).
'=' Forces the padding to be placed after the sign (if any) but before the digits. This is used for printing fields in the form ‘+000000120’. This alignment option is only valid for numeric types.
'^' Forces the field to be centered within the available space.

不兼容是因为 savetxt 不接受 '^' 作为有效的格式字符。任何人都可以阐明如何在“numpy.savetxt”中指定格式以使输出居中对齐吗?

最佳答案

您可以使用 format 组合更复杂的格式选项,包括居中的 '^' 标志:

import numpy as np
a = np.ones((3,3))*100
a[1,1]=111.12321
a[2,2]=1
np.savetxt('tmp.txt',a, fmt='{:*^10}'.format('%f'))

给予:

****100.000000**** ****100.000000**** ****100.000000****
****100.000000**** ****111.123210**** ****100.000000****
****100.000000**** ****100.000000**** ****1.000000****

关于python - 如何居中对齐 numpy.savetxt 生成的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15555525/

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