formatter
Numpy のバージョンが 1.7 以降の場合は、オプションを使用できるはずですnumpy.set_printoptions
。 1.6 は確実に動作するはずです -- 1.5.1 も同様に動作する可能性があります。
import numpy as np
a = np.zeros(shape=(5, 5), dtype=float)
np.set_printoptions(formatter={'float': lambda x: format(x, '6.3E')})
print a
または、 がない場合はformatter
、値が必要な形式の書式設定された文字列である新しい配列を作成できます。これにより、元の配列と同じ大きさのまったく新しい配列が作成されるため、これを行う最もメモリ効率の高い方法ではありませんが、numpy をアップグレードできない場合は機能する可能性があります。(これをテストしたところ、numpy 1.3.0 で動作します。)
この戦略を使用して上記のようなものを取得するには:
import numpy as np
a = np.zeros(shape=(5, 5), dtype=float)
formatting_function = np.vectorize(lambda f: format(f, '6.3E'))
print formatting_function(a)
'6.3E'
各値を出力する形式です。その他のオプション については、このドキュメントを参照してください。
この場合、6
は印刷される数値の最小幅で、3
は小数点以下に表示される桁数です。