行列を NumPy のベクトルで除算

Muhammad Maisam Abbas 2023年1月30日
  1. NumPy で Python の配列スライシングメソッドを使用して行列をベクトルで除算する
  2. NumPy の転置法を使用して NumPy のベクトルで行列を除算する
  3. 行列を NumPy のベクトルで numpy.reshape() 関数を使用して除算する
行列を NumPy のベクトルで除算

このチュートリアルでは、NumPy で行列をベクトルで除算する方法について説明します。

NumPy で Python の配列スライシングメソッドを使用して行列をベクトルで除算する

行列は 2D 配列ですが、ベクトルは単なる 1D 配列です。行列の要素を各行のベクトル要素で除算する場合は、ベクトルに新しい次元を追加する必要があります。Python の配列スライシングメソッドを使用して、ベクトルに新しい次元を追加できます。次のコード例は、Python の配列スライシングメソッドを使用して、行列の各行をベクトルで分割する方法を示しています。

import numpy as np

matrix = np.array([[2, 2, 2], [4, 4, 4], [6, 6, 6]])

vector = np.array([2, 4, 6])

matrix = matrix / vector[:, None]
print(matrix)

出力:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

最初に、np.array() 関数を使用して行列とベクトルを作成しました。次に、スライス法を使用してベクトルに新しい軸を追加しました。次に、行列を配列で除算し、結果を行列内に保存しました。

NumPy の転置法を使用して NumPy のベクトルで行列を除算する

行列を転置して、行列の各行を各ベクトル要素で除算することもできます。その後、結果を転置して、行列の前の方向に戻すことができます。次のコード例を参照してください。

import numpy as np

matrix = np.array([[2, 2, 2], [4, 4, 4], [6, 6, 6]])

vector = np.array([2, 4, 6])

matrix = (matrix.T / vector).T
print(matrix)

出力:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

上記のコードでは、行列を転置し、ベクトルで除算しました。その後、結果を転置して、matrix 内に保存しました。

行列を NumPy のベクトルで numpy.reshape() 関数を使用して除算する

このアプローチの背後にある全体的な考え方は、最初にベクトルを 2D 配列に変換する必要があるということです。numpy.reshape() 関数を使用して、各行に 1つの要素のみが含まれる 2D 配列にベクトルを変換できます。次に、行列の各行をベクトルの各行で簡単に分割できます。

import numpy as np

matrix = np.array([[2, 2, 2], [4, 4, 4], [6, 6, 6]])

vector = np.array([2, 4, 6])

matrix = matrix / vector.reshape((3, 1))
print(matrix)

出力:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

上記のコードでは、np.reshape() 関数を使用して vector を 2D 配列に変換しました。その後、matrixvector で除算し、結果を matrix 内に保存しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - NumPy Vector

関連記事 - NumPy Matrix