在 NumPy 中按向量劃分矩陣
Muhammad Maisam Abbas
2023年1月30日
2021年7月4日
- 在 NumPy 中用 Python 中的陣列切片方法按向量劃分矩陣
- 在 NumPy 中用 NumPy 中的轉置方法按向量劃分矩陣
-
在 NumPy 中使用
numpy.reshape()
函式按向量劃分矩陣
本教程將討論在 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
中。
Author: Muhammad Maisam Abbas
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