在numpy.savetxt中设置fmt选项

leb*_*leb 24 python arrays string numpy save

我正在看着numpy.savetxt,我坚持fmt选择.

我试着看一下这里以及下面链接中的参考,所有可用于fmt选项排序的字母让我对正在发生的事情有一个大致的了解.

我不明白的是,如果%符号是必需的,在这里给出的例子我应该如何解释10.5号?如果"f"是关于设置浮点,那么它是怎么来的10.5(那么我可能不知道浮点是如何设置的......).

Sau*_*tro 50

您可以通过fmt多种方式使用该参数,以下是一些示例.

import numpy as np
a = np.array([[11,12,13,14],
              [21,22,23,24]])
Run Code Online (Sandbox Code Playgroud)

1)设置浮点精度: np.savetxt('tmp.txt',a, fmt='%1.3f')

11.000 12.000 13.000 14.000
21.000 22.000 23.000 24.000
Run Code Online (Sandbox Code Playgroud)

2)在右对齐中添加字符.

有空格: np.savetxt('tmp.txt',a, fmt='% 4d')

  11   12   13   14
  21   22   23   24
Run Code Online (Sandbox Code Playgroud)

使用零: np.savetxt('tmp.txt',a, fmt='%04d')

0011 0012 0013 0014
0021 0022 0023 0024
Run Code Online (Sandbox Code Playgroud)

3)向左对齐添加字符(使用" -").

有空格: np.savetxt('tmp.txt',a, fmt='%-4d')

11   12   13   14  
21   22   23   24  
Run Code Online (Sandbox Code Playgroud)

您也可以使用编写表达式(例如,表达式中的条目数与数组中的列数相同:

4)一般例子: np.savetxt('tmp.txt',a, fmt='%1.1f + %1.1f / (%1.1f * %1.1f)')

11.0 + 12.0 / (13.0 * 14.0)
21.0 + 22.0 / (23.0 * 24.0)
Run Code Online (Sandbox Code Playgroud)


FFT*_*FFT 7

链接可能会有所帮助。

从链接:

format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]
fill        ::=  <any character>
align       ::=  "<" | ">" | "=" | "^"
sign        ::=  "+" | "-" | " "
width       ::=  integer
precision   ::=  integer
type        ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Run Code Online (Sandbox Code Playgroud)

宽度是定义最小字段宽度的十进制整数。如果未指定,则字段宽度将由内容决定。

当没有给出明确的对齐方式时,在宽度字段前面加上一个零 ('0') 字符为数字类型启用符号感知零填充。这等效于对齐类型为“=”的填充字符“0”。

精度是一个十进制数,表示对于以 'f' 和 'F' 格式的浮点值,小数点后应显示多少位,对于以 'g' 格式的浮点值,小数点前后应显示多少位或'G'。对于非数字类型,该字段指示最大字段大小 - 换句话说,字段内容中将使用多少个字符。整数值不允许使用精度。