2012-09-10 5 views
8

私は現在、次のコードを持っています。この出力生成numpy行列の良い出力はどうすれば生成できますか?

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import numpy 
from numpy import linalg 

A = [[1,2,47,11],[3,2,8,15],[0,0,3,1],[0,0,8,1]] 
S = [[113,49,2,283],[-113,0,3,359],[0,5,0,6],[0,20,0,12]] 

A = numpy.matrix(A) 
S = numpy.matrix(S) 

numpy.set_printoptions(precision=2, suppress=True, linewidth=120) 
print("S^{-1} * A * S") 
print(linalg.inv(S) * A * S) 

python output

は、次のような出力を生成するための標準的な方法はありますか?どうすればこの出力を得ることができますか?

[[ -1 -0.33 0 0] 
[ 0  1  0 0] 
[ 0 -648  4 0] 
[ 0  6.67 0 5]] 

何が違うのですか?

  • 少なくとも2つの列iの最後の文字とカラムi+1の最初の文字の間にスペースが、より多くのが必要な場合、それはより多くのかもしれないが
  • ドットが並んでいる((numpyの出力は、二つのスペースになります) はそれが)まで揃えですが、BetterPythonConsole台無しのフォント設定
  • -0しかし0
  • 0.ありませんが、0

編集:私はターミナルからそれを起動したときにgEdits BetterPythonConsoleプラグインで開始されるPythonコンソールは、Pythonのとは別の何かをするかのように思われます。

これは、prettyprintで

[email protected]:~/Desktop$ python matrixScript.py 
S^{-1} * A * S 
[[ -1.  -0.33 0.  -0. ] 
[ 0.  -1.  -0.  0. ] 
[ 0. -648.  4.  -0. ] 
[ 0.  6.67 0.  5. ]] 

上記のスクリプトのテキストとして出力されます:

S^{-1} * A * S 
matrix([[ -1. , -0.33, 0. , -0. ], 
     [ 0. , -1. , -0. , 0. ], 
     [ 0. , -648. , 4. , -0. ], 
     [ 0. , 6.67, 0. , 5. ]]) 

これはdefenitely悪いですが、それは試してみる価値がありました。

+0

[恐ろしい印刷のnumpy.array](http://stackoverflow.com/questions/2891790/pretty-printing-of-numpy-array) – Chris

+2

これは重複していません。私はこの質問(および答え)を読んだが、十分な書式設定を提供していない。 –

+0

'pprint'を試しましたか? http://stackoverflow.com/questions/1523660/how-to-print-a-list-in-python-nicely –

答えて

4

numpy 1.8.xを使用する場合は、formatterパラメータを使用して書式をカスタマイズできます。例えば 、設定:

numpy.set_printoptions(formatter={'float': lambda x: 'float: ' + str(x)}) 

をすべての山車がfloat: 3.0、またはfloat: 12.6666666666のように印刷されます。

残念ながら、まだnumpy 1.6.1がインストールされていて、このオプションは提供されていません。 私は希望の出力を得るために使用できません。

+0

私はnumpy 1.6.1も持っています。 –

+0

私のシステムをアップデートするのは、Formating中の他のすべての問題が 'BetterPythonConsole'に関連しているように思えるので、私のシステムを更新するのが一番良い選択でしょう。 –

+0

はい、おそらく別のオプションは、numpy配列で使用するカスタムの 'format'関数を書くことでしょう。これはあまりにも書くのは難しいかもしれませんが、将来の使用のために少し一般的にしたいのであれば、2分で書くものではありません。 このアップグレード以外のメリットもあります。 – Bakuriu

関連する問題