在numpy.savetxt中设置fmt选项

我正在查看numpy.savetxt,并一直停留在该fmt选项上。

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

我不明白的是如果%需要符号,在这里给出的示例中,我应该如何解释10.5数字?如果“

f”是关于设置浮点的,那么它将变为10.5(然后,我可能不知道如何设置浮点…)。

回答:

知道这np.savetxt仅适用于1D或2D阵列,通常的想法是:

  • fmt是单个格式化字符串时,它将应用于数组中的所有元素(1D或2D输入数组)
  • fmt是格式化字符串序列时,它适用于2D输入数组的每一列

我在这里展示一些使用以下输入数组的示例:

import numpy as np

a = np.array([[11, 12, 13, 14],

[21, 22, 23, 24],

[31, 32, 33, 34]])

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

31.000 32.000 33.000 34.000

2)添加字符以使右对齐。

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

  11   12   13   14

21 22 23 24

31 32 33 34

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

0011 0012 0013 0014

0021 0022 0023 0024

0031 0032 0033 0034

3)在左对齐处添加字符(使用“ -”)。

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

11   12   13   14  

21 22 23 24

31 32 33 34

4)当fmt是一系列格式化字符串时,将根据fmt以下条件处理2D输入数组的每一行:

fmt作为 的

fmt = '%1.1f + %1.1f / (%1.1f * %1.1f)'

np.savetxt('tmp.txt', a, fmt=fmt)

11.0 + 12.0 / (13.0 * 14.0)

21.0 + 22.0 / (23.0 * 24.0)

31.0 + 32.0 / (33.0 * 34.0)

fmt作为 的 :

fmt = '%d', '%1.1f', '%1.9f', '%1.9f'

np.savetxt('tmp.txt', a, fmt=fmt)

11 12.0 13.000000000 14.000000000

21 22.0 23.000000000 24.000000000

31 32.0 33.000000000 34.000000000

以上是 在numpy.savetxt中设置fmt选项 的全部内容, 来源链接: utcz.com/qa/429068.html

回到顶部