在 NumPy 中按向量劃分矩陣

Muhammad Maisam Abbas 2023年1月30日 2021年7月4日
  1. 在 NumPy 中用 Python 中的陣列切片方法按向量劃分矩陣
  2. 在 NumPy 中用 NumPy 中的轉置方法按向量劃分矩陣
  3. 在 NumPy 中使用 numpy.reshape() 函式按向量劃分矩陣
在 NumPy 中按向量劃分矩陣

本教程將討論在 NumPy 中將矩陣除以向量的方法。

在 NumPy 中用 Python 中的陣列切片方法按向量劃分矩陣

矩陣是一個二維陣列,而向量只是一個一維陣列。如果我們想將矩陣的元素除以每行中的向量元素,我們必須向向量新增一個新維度。我們可以使用 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() 函式按向量劃分矩陣

這種方法背後的整個想法是我們必須首先將向量轉換為二維陣列。numpy.reshape() 函式可用於將向量轉換為二維陣列,其中每一行僅包含一個元素。然後我們可以輕鬆地將矩陣的每一行除以向量的每一行。

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 陣列。之後,我們將 matrix 除以 vector 並將結果儲存在 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