Python 如何将numpy.savetxt生成的文本居中对齐?
我使用一个小包装器来自动生成标题名,并为可读的输出创建一些智能的宽度对齐。现在有一个更简单的解决方案 我想知道如何指定宽度并使输出文本与中心对齐,而不是像文档中所示左对齐 从Python 如何将numpy.savetxt生成的文本居中对齐?,python,numpy,alignment,center,Python,Numpy,Alignment,Center,我使用一个小包装器来自动生成标题名,并为可读的输出创建一些智能的宽度对齐。现在有一个更简单的解决方案 我想知道如何指定宽度并使输出文本与中心对齐,而不是像文档中所示左对齐 从numpy.savetxt文档中,我看到以下信息: 文档指出了一个更“详尽的资源”,但其中的信息与对齐信息不兼容 各种路线选项的含义如下: 选项含义 “”强制字段在可用空间内右对齐(这是数字的默认值)。 “=”强制将填充放置在符号(如果有)之后但数字之前。这用于打印格式为“+000000120”的字段。此对齐选项仅对数字类型
numpy.savetxt
文档中,我看到以下信息:
文档指出了一个更“详尽的资源”,但其中的信息与对齐信息不兼容
各种路线选项的含义如下:
选项含义
“”强制字段在可用空间内右对齐(这是数字的默认值)。
“=”强制将填充放置在符号(如果有)之后但数字之前。这用于打印格式为“+000000120”的字段。此对齐选项仅对数字类型有效。
“^”强制字段在可用空间内居中。
不兼容是因为savetxt不接受
“^”
作为有效的格式字符。有谁能解释一下如何在“numpy.savetxt”中指定格式,使输出居中对齐吗?您可以使用格式组合更复杂的格式选项,包括居中的“^”
标志:
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****
你把******
包括进来,我有点困惑。我检查了一下,它确实回答了我的问题。非常感谢。最后我使用了fmt='{0:^{1}}'。格式(fmtname,fieldlen)
其中fmtname
是np.savetxt
的公认格式规范之一。是的,我只是用它来描述集中效果。。。非常感谢。
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.
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****