python - Np.savetxt 将标题与列对齐

标签 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('Output.txt', Output, delimiter='\t', newline=os.linesep,
            header=header, comments='')

我的输出是:

enter image description here

但是我想要的是“A”、“B”和“C”与列对齐,即:

enter image description here

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

最佳答案

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

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

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'

相应的 header 将是:

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', delimiter=' ', newline='\n', header='', footer='', comments='# ')

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

关于python - Np.savetxt 将标题与列对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47757493/

相关文章:

image - 如何在 MATLAB 中保存高分辨率图形

r - 保存 anR 项目时的压缩问题

python - 获得多个掩码的每个掩码 np.array 的最大值的最快方法?

python - 如何使用 unicode 从 python 服务解析 JSON?语法错误 : Unexpected token u

Python 将数据发布到 url

python - 将原始电子邮件(带附件)发送给多个收件人

python - numpy 二维数组的 block 均值

python - np.ones 更改为元组并且 np.asarray 没有修复它

excel - 通过 VBA 在 Excel 中节省时间过长

python - 您在 tkinter 中将哪个小部件用于类似 Excel 的表格?