を任意のフォーマットでnumpyの表示フロートアレイを作るために、あなたはその入力としてfloat値を受け取り、フォーマットされた文字列を返すカスタム関数を定義することができます。
In [1]: float_formatter = lambda x: "%.2f" % x
ここではf
は固定小数点形式(科学的ではない)を意味し、.2
は2桁の小数点以下を意味します(文字列のフォーマットについてはhereを参照してください)。
のはfloat値でそれをテストしてみましょう:
In [2]: float_formatter(1.234567E3)
Out[2]: '1234.57'
すべてのフロートアレイをこのようにnumpyの印刷を行うには、あなたがnp.set_printoptions
にformatter=
引数を渡すことができます。
In [3]: np.set_printoptions(formatter={'float_kind':float_formatter})
今numpyの意志を印刷すべてのフロート配列は次のようになります。
In [4]: np.random.randn(5) * 10
Out[4]: array([5.25, 3.91, 0.04, -1.53, 6.68]
この時にのみnumpyの配列ではなく、スカラー影響:
In [5]: np.pi
Out[5]: 3.141592653589793
をまた非山車、複雑な山車などには影響しません - あなたは、他のスカラー型のために別々のフォーマッタを定義する必要があります。
は、numpyが浮動小数点値を表示する方法に影響します。計算で使用される実際の値は元の精度を保持します。例えば
:
In [6]: a = np.array([1E-9])
In [7]: a
Out[7]: array([0.00])
In [8]: a == 0
Out[8]: array([False], dtype=bool)
numpyのプリントa
が0
に等しかったが、それはないかのように - それはまだ1E-9
に等しいです。
実際に配列内の値を計算で使用する方法に影響を与えるように丸めたい場合は、np.round
を使用する必要があります。
[科学的表記法と所定の精度を持たずにnumpy.arrayをきれいに印刷する方法は?](http://stackoverflow.com/questions/2891790/how-to-pretty-printing-a-numpy- array-without-scientific-notation-with-given) –