40

を見ていてnumpy.savetxt、オプションで行き詰まっていfmtます。

私はここを見てみました.オプションソートに使用できるすべての文字の下のリンクの参照も、fmt何が起こっているのかの一般的な感覚を与えてくれます.

私が理解できないのは、シンボルが必要かどうかです。ここ%に示されている例では、10.5 の数値をどのように解釈すればよいですか? 「f」が浮動小数点の設定に関するものである場合、どうして 10.5 になるのでしょうか (また、浮動小数点がどのように設定されているのかわかりません...)。

4

2 に答える 2

79

np.savetxt1Dまたは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
于 2013-06-11T13:07:34.377 に答える
7

このリンクが役立つ場合があります。

リンクから:

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

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

明示的なアラインメントが指定されていない場合、幅フィールドの前にゼロ ('0') 文字を付けると、数値型の符号認識ゼロ パディングが有効になります。これは、整列タイプが「=」の「0」の埋め込み文字と同等です。

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

于 2016-08-21T22:58:38.203 に答える