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
がフォーマット文字列のシーケンスである場合、2D 入力配列の各行は次のように処理されfmt
ます。
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