Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Np.savetext将标题与列对齐_Python_Numpy_Save - Fatal编程技术网

Python Np.savetext将标题与列对齐

Python Np.savetext将标题与列对齐,python,numpy,save,Python,Numpy,Save,我试图保存一个包含大量数据的数据文件,并包含一个头文件。我不得不将标题与相应的列对齐。示例代码: import numpy as np import os Output = np.empty((0,3), int) for i in range(30): Values = 10e6 * np.random.random((1,3)) Output = np.vstack((Output, Values)) header = 'A\tB\tC' np.savetxt('Out

我试图保存一个包含大量数据的数据文件,并包含一个头文件。我不得不将标题与相应的列对齐。示例代码:

import numpy as np
import os

Output = np.empty((0,3), int)

for i in range(30):
    Values = 10e6 * np.random.random((1,3))
    Output = np.vstack((Output, Values))

header = 'A\tB\tC'
np.savetxt('Output.txt', Output, delimiter='\t', newline=os.linesep,
            header=header, comments='')
我的输出是:

但是,我希望“A”、“B”和“C”与列对齐,即:


我怎样才能做到这一点?感谢您的帮助。

标题的格式必须与列的格式相匹配

例如,对于3列和
%10.5f
格式,perline格式为:

In [185]: fmt = '\t'.join(['%10.5f']*3)
In [186]: fmt
Out[186]: '%10.5f\t%10.5f\t%10.5f'
因此,数字行将写为:

In [187]: fmt%tuple(np.random.random(3))
Out[187]: '   0.83330\t   0.90960\t   0.07613'
相应的
标题将是:

In [188]: '%10s\t%10s\t%10s'%('A','B','C')
Out[188]: '         A\t         B\t         C'

In [189]: header = '%10s\t%10s\t%10s'%('A','B','C')
In [193]: np.savetxt('test.txt', np.random.random((2,3)),  delimiter='\t', heade
     ...: r=header, fmt='%10.5f') 
In [194]: cat test.txt
#          A             B           C
   0.55919     0.55277     0.47236
   0.93945     0.50398     0.56320
默认的
fmt
在签名行中给出

np.savetxt(fname,X,fmt='%.18e',分隔符='',换行符='\n',页眉='',页脚='',注释='#')


这很难匹配,因为它只指定小数点的数量,而不是总宽度。

您必须创建具有正确间距的标题字符串。默认的
fmt
%10.5f
。因此,您的
标题必须考虑到这一点。记住
\t
下一个选项卡的空格(8个空格);它是相对的,不是绝对的。@STJ,你找到了不需要硬编码的东西吗?