Pythonで2つの行列の異なる要素を見つける方法


方法1: ネストされたループを使用する方法 この方法では、2つの行列を要素ごとに比較し、異なる要素を見つけるためにネストされたループを使用します。

def find_different_elements(matrix1, matrix2):
    different_elements = []
    for i in range(len(matrix1)):
        for j in range(len(matrix1[0])):
            if matrix1[i][j] != matrix2[i][j]:
                different_elements.append((i, j))
    return different_elements
# 2つの行列を定義する例
matrix1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix2 = [[1, 2, 3], [4, 0, 6], [7, 8, 9]]
result = find_different_elements(matrix1, matrix2)
print(result)  # [(1, 1)]

方法2: NumPyを使用する方法 NumPyは高性能な数値計算ライブラリであり、行列操作に便利です。以下のコードでは、NumPyのnumpy.where関数を使用して異なる要素を見つけます。

import numpy as np
def find_different_elements(matrix1, matrix2):
    matrix1 = np.array(matrix1)
    matrix2 = np.array(matrix2)
    different_elements = np.where(matrix1 != matrix2)
    return list(zip(different_elements[0], different_elements[1]))
# 2つの行列を定義する例
matrix1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix2 = [[1, 2, 3], [4, 0, 6], [7, 8, 9]]
result = find_different_elements(matrix1, matrix2)
print(result)  # [(1, 1)]

これらは2つの一般的な方法ですが、他にもさまざまなアプローチがあります。使用する具体的な要件に応じて、最適な方法を選択できます。以上のコード例を参考にして、行列の異なる要素を見つけるためのPythonコードを作成してみてください。