Pythonで行列を表現するにはどうすればよいですか?
この答え を見てください:
from numpy import matrix
from numpy import linalg
A = matrix( [[1,2,3],[11,12,13],[21,22,23]]) # Creates a matrix.
x = matrix( [[1],[2],[3]] ) # Creates a matrix (like a column vector).
y = matrix( [[1,2,3]] ) # Creates a matrix (like a row vector).
print A.T # Transpose of A.
print A*x # Matrix multiplication of A and x.
print A.I # Inverse of A.
print linalg.solve(A, x) # Solve the linear equation system.
Pythonには行列がありません。リストのリストまたは NumPy を使用できます
NumPyライブラリを使用しない場合は、ネストされたリストを使用できます。これは、動的なネストされたリスト(2次元リスト)を実装するコードです。
r
を行数とする
let r=3
m=[]
for i in range(r):
m.append([int(x) for x in raw_input().split()])
を使用して行を追加できるときはいつでも
m.append([int(x) for x in raw_input().split()])
上記では、行列を行ごとに入力する必要があります。列を挿入するには:
for i in m:
i.append(x) # x is the value to be added in column
マトリックスを印刷するには:
print m # all in single row
for i in m:
print i # each row in a different line
((1,2,3,4),
(5,6,7,8),
(9,0,1,2))
リストの代わりにタプルを使用すると、不要な方法でデータ構造を変更するのが少し難しくなります。
これらを広範囲に使用する場合は、クラスで true number array をラップすることをお勧めします。そのため、メソッドとプロパティを定義できます。 (または、これらのライブラリを使用して処理を実行する場合は、NumPy、SciPyなどを使用できます。)