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

2つの行列を乗算するPythonプログラム


この記事では、以下に示す問題ステートメントの解決策について学習します。

問題の説明 − 2つの行列が与えられたので、それらを乗算して結果を出力する必要があります。

2つの行列を乗算するには、最初の行列の列が2番目の行列の行の列と同じである必要があります

この条件が真であると評価されるたびに、計算が実行されます

それでは、以下の実装の概念を見てみましょう-

アプローチ1-ブルートフォース方式

A = [[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
]
B = [[5, 3, 3],
   [6, 5, 4],
   [0, 2, 0]
]
result= [[0, 0, 0],
   [0, 0, 0],
   [0, 0, 0]
]
# iterating by row
for i in range(len(A)):
   # iterating by column
   for j in range(len(B[0])):
      # iterating by rows
      for k in range(len(B)):
         result[i][j] += A[i][k] * B[k][j]
for ele in result:
   print(ele)

出力

[17, 19, 11]
[50, 49, 32]
[83, 79, 53]

アプローチ2-zip機能の使用

A = [[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
]
B = [[5, 3, 3],
   [6, 5, 4],
   [0, 2, 0]
]
# using built-in zip function
result = [[sum(a * b for a, b in zip(A_row, B_col))
   for B_col in zip(*B)]
   for A_row in A]
for ele in result:
   print(ele)

出力

[17, 19, 11]
[50, 49, 32]
[83, 79, 53]

結論

この記事では、2つの行列を乗算する方法を学びました。


  1. Tensorflowを使用してPythonを使用して2つの行列を乗算するにはどうすればよいですか?

    Tensorflowは、Googleが提供する機械学習フレームワークです。これは、Pythonと組み合わせて使用​​されるオープンソースのフレームワークであり、アルゴリズム、深層学習アプリケーションなどを実装します。それは研究および生産目的で使用されます。複雑な数学演算をすばやく実行するのに役立つ最適化手法があります。 これは、NumPyと多次元配列を使用しているためです。これらの多次元配列は「テンソル」とも呼ばれます。フレームワークは、ディープニューラルネットワークの操作をサポートします。これは非常にスケーラブルであり、多くの一般的なデータセットが付属しています。 GPU計算を使用し、リソ

  2. 2つの数値を追加するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 2つの大きな数が与えられ、それらを追加して出力を表示する必要があります。 ブルートフォースアプローチでは、オペランド間に「+」演算子を使用するか、2つの数値を反復可能に格納して、Python標準ライブラリで使用可能な組み込みのsum関数を使用できます。 このアプローチでは、計算が10進数で直接行われるため、時間計算量が増加します。 次に、10進数のビットを処理する別のアプローチについて説明します。 ここでは、合計とキャリーを計算する加算器の概念を使用します。 それでは、実装を見