Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの行列(マトリックス)とは?宣言から入力・表示まで実例付きで解説

Pythonにおける行列(マトリックス)とは、特定の行数と列数を持つ2次元配列のことです。行列の各要素には、数値はもちろん、文字列や記号なども格納できます。

行列(2次元リスト)は重要なデータ構造の一つであり、転置(transpose)、行列同士の加算や乗算など、さまざまな操作が可能です。

この記事では、指定した行数・列数でPythonの行列を宣言する方法、ユーザーからデータを入力する方法、そして最終的に行列を表示する方法までを順番に解説します。

ネストされたリストとして行列を宣言する

Pythonでは、行列を「リストの中にリストを入れた構造(ネストされたリスト)」として宣言できます。その際、行数と列数を明示する必要があります。

たとえば、行数が3、列数が4の行列を作成する場合は、次のように記述します。

Matrix=[[0]*4 for i in range(3)]

ここでは [0]*4 によって4つの0を持つリスト(=1行分)を作り、それを内包表記で3回繰り返すことで、3行4列の初期化済み行列が生成されます。

行列の要素を入力し、行ごとに表示する

次に、ユーザーから値を入力して行列に格納し、その結果を表示する具体例を見てみましょう。

サンプルコード

col=4
rows=3
matrix=[[0]*col for i in range(rows)]
for i in range(rows):
    print("行", i+1, "の要素を入力してください")
    for j in range(col):
        matrix[i][j]=int(input())

def rowvise(matrix):
    for i in range(rows):
        print(matrix[i])
print("ネストされたリストとして表示")
print(matrix)
print("各行を別々の行で表示")
rowvise(matrix)

実行結果

行 1 の要素を入力してください
1
2
3
4
行 2 の要素を入力してください
5
6
7
8
行 3 の要素を入力してください
1
2
3
4
ネストされたリストとして表示
[[1, 2, 3, 4], [5, 6, 7, 8], [1, 2, 3, 4]]
各行を別々の行で表示
[1, 2, 3, 4]
[5, 6, 7, 8]
[1, 2, 3, 4]

このように、外側のループで行を、内側のループで列を制御することで、行列の全要素に順番にアクセスできます。表示方法も、ネストされたリスト全体をそのまま出力する方法と、for ループで各行を個別に出力する方法の2通りがあります。

応用:行列の転置を行う

行列の基本的な操作ができたら、次は転置にも挑戦してみましょう。転置とは、行と列を入れ替える操作のことです。Pythonでは zip() 関数を使うと簡潔に実現できます。

matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [1, 2, 3, 4]]
transpose = [list(row) for row in zip(*matrix)]
print(transpose)

実行結果

[[1, 5, 1], [2, 6, 2], [3, 7, 3], [4, 8, 4]]

また、本格的な数値計算を行う場合は、NumPyライブラリを使うと効率的です。numpy.array() で行列を作成すれば、.T 属性一つで転置を取得できるほか、加算・乗算などの演算も高速に処理できます。

まとめ

この記事では、Pythonにおける行列の基本操作として、ネストされたリストによる行列の宣言、ユーザーからの要素入力、行ごとの表示、そして転置の方法を紹介しました。これらの基礎を押さえておけば、加算や乗算といった他の行列演算も、ロジックを組み立てることで簡単に実装できるようになります。

  1. Pythonのtimeitモジュールとは?コード実行時間の計測方法を実例付きで徹底解説

    Pythonには、コードの実行時間を計測するためのさまざまな方法が用意されています。そのひとつが、標準ライブラリのtimeモジュールを使い、プログラムの実行前後の時刻を記録して差分を求めるというアプローチです。Pythonのtimeitモジュールとはプログラムが動作している間、バックグラウンドでは多くのプロセスが同時に稼働しており、コードが実行可能な状態を維持しています。しかし、timeモジュールではこれらのバックグラウンド処理にかかる時間は考慮されません。より正確なパフォーマンス計測が必要な場合は、timeitモジュールを使用するのが最適です。timeitモジュールは、対象のコードをデフォル

  2. Pythonで行列を操作する方法|NumPyを使った基本演算まとめ

    Pythonでは、NumPyモジュールを利用することで、行列に対するさまざまな操作や演算を簡単に実行できます。NumPyは数値計算用の強力なライブラリであり、行列演算のための便利なメソッドが多数用意されています。 主な行列演算メソッド一覧 add() — 2つの行列の対応する要素同士を加算します。 subtract() — 2つの行列の対応する要素同士を減算します。 divide() — 2つの行列の対応する要素同士を除算します。 multiply() — 2つの行列の対応する要素同士を乗算します(要素ごとの積)。 dot() — 行列の掛け算(内積)を実行します。要素ごとの乗算ではなく、数学