在numpy.savetxt中设置fmt选项
我正在查看numpy.savetxt
,并一直停留在该fmt
选项上。
我试着看这里,所有可以用于fmt
选项排序的字母下面的链接中的引用也使我对正在发生的事情有一个大致的了解。
我不明白的是如果%
需要符号,在这里给出的示例中,我应该如何解释10.5数字?如果“
f”是关于设置浮点的,那么它将变为10.5(然后,我可能不知道如何设置浮点…)。
回答:
知道这np.savetxt
仅适用于1D或2D阵列,通常的想法是:
- 当
fmt
是单个格式化字符串时,它将应用于数组中的所有元素(1D或2D输入数组) - 当
fmt
是格式化字符串序列时,它适用于2D输入数组的每一列
我在这里展示一些使用以下输入数组的示例:
import numpy as npa = 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.00021.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 00140021 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