1

Pythonでnumpy配列に行列があるとします

In [3]: my_matrix
Out[3]: 
array([[ 2.,  2.,  2.,  2.,  2.,  2.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  2.,  2.,  2.,  2.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  2.,  2.,  2.,
         2.,  2.,  2.,  2.,  2.]])

Python/IPython に配列を次のように出力させる方法はありますか:

[ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2; 
  0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0; 
  0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 ]

? (~ MATLAB の方法と同様)

また、配列を印刷するときに、IPython が端末の全幅を使用していないことに気付きました。numpy他の関数もそうです (例: pprint.pprint)。どうすればそれを変更できますか?

4

1 に答える 1

5

numpy.set_printoptionsを使用します。線幅を広げるには:

np.set_printoptions(linewidth=150)

150 を必要なものに置き換えます。さて、あなたが求めたように印刷するには(小数点なしを意味すると思います):

print my_matrix.astype('i')

浮動小数点値がある場合は、オプションで出力の精度を制御することもできますprecision:

np.set_printoptions(precision=3)
于 2012-12-03T02:40:02.610 に答える