Pythonで2次元配列を扱う方法
Pythonで2次元配列(リストのリスト)を扱う方法について説明します。
2次元配列は、行と列の概念を持つ配列で、リストの中にリストを持つことで実現します。
例えば、以下のように2次元配列を作成します。
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
このmatrixは3×3の2次元配列で、3つの行と3つの列を持っています。
リストの各要素がリストになっていることで、2次元の構造を持つことが可能です。
2次元配列へのアクセス
2次元配列の要素にアクセスするには、行と列のインデックスを指定します。
インデックスは0から始まるため、例えばmatrixの中央の要素(5)にアクセスするには以下のようにします。
central_element = matrix[1][1] print(central_element) # 出力: 5
ここで、matrix[1]は2行目のリスト[4, 5, 6]を返し、さらに[1]を指定することで、2行目の2列目の要素である5を取得できます。
2次元配列の反復処理
2次元配列全体を処理する場合、ネストされたループを使用します。
外側のループで行を、内側のループで列を反復処理します。
for row in matrix: for element in row: print(element, end=' ') print() # 改行
このコードは、matrix内のすべての要素を順に出力します。
end=' 'は、要素を出力した後にスペースを入れるためのもので、print()は各行の出力後に改行します。
2次元配列の操作
2次元配列の要素を変更したり、新しい値を代入することも簡単です。
特定の要素に新しい値を設定するには、インデックスを指定して直接代入します。
matrix[0][0] = 10 # 最初の行、最初の列の要素を10に変更 print(matrix)
また、新しい行を追加したり、既存の行に新しい列を追加することも可能です。
matrix.append([10, 11, 12]) # 新しい行を追加 matrix[0].append(4) # 最初の行に新しい列を追加 print(matrix)
リスト内包表記を使った2次元配列の作成
Pythonのリスト内包表記を使うと、簡潔に2次元配列を作成できます。
例えば、3×3のゼロ行列を作成するには以下のようにします。
zero_matrix = [[0 for _ in range(3)] for _ in range(3)] print(zero_matrix)
ここでは、内側のリスト内包表記で1行分の[0, 0, 0]を作成し、外側のリスト内包表記でその行を3回繰り返すことで、3×3の行列が作成されます。
NumPyを使った2次元配列の処理
大規模な2次元配列を効率的に扱いたい場合、NumPyライブラリを使用するのが一般的です。
NumPyを使うと、数学的な操作や大規模データの処理が高速になります。
NumPyを使った2次元配列の作成例を以下に示します。
import numpy as np matrix = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) print(matrix)
NumPy配列は通常のリストと似ていますが、多くの数学関数や行列演算が効率的にサポートされています。
例えば、すべての要素を2倍にする場合、次のように簡潔に書けます。
doubled_matrix = matrix * 2 print(doubled_matrix)
まとめると、Pythonではリストを使って2次元配列を簡単に作成・操作でき、さらに高度な操作や大規模なデータ処理にはNumPyライブラリを活用するのが効果的です。
これにより、柔軟かつ効率的に2次元配列を扱うことが可能です。