知道这
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.00031.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 00240031 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.00000000021 22.0 23.000000000 24.00000000031 32.0 33.000000000 34.000000000


