numpy.savetxt#

numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ', encoding=None)[源代码]#

将数组保存到文本文件中.

参数:
fname文件名, 文件句柄或 pathlib.Path

如果文件名以 .gz 结尾,文件将自动以压缩的 gzip 格式保存.`loadtxt` 可以透明地理解 gzipped 文件.

X1D 或 2D array_like

要保存到文本文件的数据.

fmtstr 或 str 序列,可选

单一格式 (%10.5f)、一系列格式,或一个多格式字符串,例如 ‘Iteration %d – %10.5f’,在这种情况下 delimiter 被忽略.对于复杂的 X,`fmt` 的合法选项是:

  • 一个单一的指定符,``fmt=’%.4e’,导致数字格式化为 ``' (%s+%sj)' % (fmt, fmt)

  • 一个完整的字符串,指定每个实部和虚部,例如 ' %.4e %+.4ej %.4e %+.4ej %.4e %+.4ej' 用于3列

  • 一组说明符,每列一个 - 在这种情况下,实部和虚部必须有单独的说明符,例如 ['%.3e + %.3ej', '(%.15e%+.15ej)'] 用于2列

delimiterstr, 可选

分隔列的字符串或字符.

newlinestr, 可选

分隔行的字符串或字符.

在 1.5.0 版本加入.

headerstr, 可选

将写入文件开头的字符串.

在 1.7.0 版本加入.

footerstr, 可选

将在文件末尾写入的字符串.

在 1.7.0 版本加入.

commentsstr, 可选

将添加到 headerfooter 字符串前面的字符串,以将它们标记为注释.默认值:’# ‘,例如 numpy.loadtxt 所期望的.

在 1.7.0 版本加入.

encoding{None, str}, 可选

用于编码输出文件的编码.不适用于输出流.如果编码不是 ‘bytes’ 或 ‘latin1’,则无法在 NumPy 版本 < 1.14 中加载文件.默认是 ‘latin1’.

在 1.14.0 版本加入.

参见

save

将数组保存到 NumPy .npy 格式的二进制文件中

savez

将多个数组保存到一个未压缩的 .npz 存档中

savez_compressed

将多个数组保存到一个压缩的 .npz 存档中

备注

进一步解释 fmt 参数 (%[flag]width[.precision]specifier):

flags:

- : 左对齐

+ : 强制在结果前加上 + 或 -.

0 : 用零而不是空格左填充数字(见宽度).

width:

要打印的最小字符数.如果值包含更多字符,则不会截断.

精度:
  • 对于整数说明符(例如 d,i,o,x),最小的数字位数.

  • 对于 e, Ef 说明符,小数点后要打印的位数.

  • 对于 gG ,最大有效数字位数.

  • 对于 s ,字符的最大数量.

说明符:

c : 字符

di : 有符号十进制整数

eE : 使用 eE 的科学计数法.

f : 十进制浮点数

g,G : 使用 e,Ef 中较短的一个

o : 有符号八进制

s : 字符串

u : 无符号十进制整数

x,X : 无符号十六进制整数

关于 fmt 的解释并不完整,欲了解详尽的规范,请参见 [1].

参考文献

[1]

格式规范迷你语言,Python 文档.

示例

>>> import numpy as np
>>> x = y = z = np.arange(0.0,5.0,1.0)
>>> np.savetxt('test.out', x, delimiter=',')   # X is an array
>>> np.savetxt('test.out', (x,y,z))   # x,y,z equal sized 1D arrays
>>> np.savetxt('test.out', x, fmt='%1.4e')   # use exponential notation