web-dev-qa-db-ja.com

numpy.savetxtでfmtオプションを設定する

私はnumpy.savetxtを見ていますが、fmtオプションにこだわっています。

here と、fmtオプションの並べ替えに使用できるすべての文字の下にあるリンクの参照を見てみたところ、何が起こっているのかという一般的な感覚が得られました。

私が理解していないのは、%記号が必要かどうか、そして与えられた例で here 10.5の数値をどう解釈すべきかということです。 「f」が浮動小数点の設定に関するものである場合、10.5になります(それから、浮動小数点の設定方法がわからないかもしれません...)。

23
leb

fmtパラメーターはさまざまな方法で使用できます。以下に例を示します。

_import numpy as np
a = np.array([[11,12,13,14],
              [21,22,23,24]])
_

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
_

2)右揃えに文字を追加します。

スペースあり:np.savetxt('tmp.txt',a, fmt='% 4d')

_  11   12   13   14
  21   22   23   24
_

ゼロあり:np.savetxt('tmp.txt',a, fmt='%04d')

_0011 0012 0013 0014
0021 0022 0023 0024
_

3)左揃えに文字を追加します(「_-_」を使用)。

スペースあり:np.savetxt('tmp.txt',a, fmt='%-4d')

_11   12   13   14  
21   22   23   24  
_

次のように式を記述することもできます(式のエントリの数は配列の列の数と同じであることに注意してください:

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)
_
47

これは link が役に立つかもしれません。

リンクから:

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" | "%"

幅は、最小フィールド幅を定義する10進整数です。指定しない場合、フィールドの幅はコンテンツによって決まります。

明示的な位置合わせが指定されていない場合、幅フィールドの前にゼロ(「0」)文字を付けると、数値型の符号認識ゼロパディングが有効になります。これは、整列タイプが「=」の塗りつぶし文字「0」に相当します。

精度は、「f」および「F」でフォーマットされた浮動小数点値の小数点以下、または「g」でフォーマットされた浮動小数点値の小数点前後に表示する桁数を示す10進数です。 「G」。数値以外のタイプの場合、フィールドは最大フィールドサイズ、つまり、フィールドコンテンツから使用される文字数を示します。整数値には精度は許可されません。

3
FFT