如何在 PyTorch 中打亂矩陣的列或行?
PyTorch 中的矩陣是一個二維張量,其元素具有相同的 dtype。我們可以將一行與另一行交換,將一列與另一列交換。要打亂行或列,我們可以像在 Numpy 中一樣使用簡單的**切片**和**索引**。
如果我們想打亂行,那麼我們在行索引中進行切片。
要打亂列,我們在列索引中進行切片。
例如,如果我們想打亂 3×3 矩陣的第 1 行和第 2 行,那麼我們只需打亂這些行的索引並進行切片以找到打亂後的矩陣。
讓我們看幾個例子,以便更好地理解它是如何工作的。
步驟
您可以使用以下步驟來打亂矩陣的行或列。
匯入所需的庫。在以下所有示例中,所需的 Python 庫是**torch**。確保您已安裝它。
import torch
定義一個矩陣並列印它。
matrix = torch.tensor([[1., 2., 3.],[4., 5., 6.],[7, 8, 9]])
print("Original Matrix:
", matrix)指定行和列索引以及打亂後的索引。在以下示例中,我們打亂第 1 行和第 2 行。因此,我們交換了這些行的索引。
# shuffle 1st and second row r = torch.tensor([1, 0, 2]) c = torch.tensor([0, 1, 2])
打亂矩陣的行或列。
matrix=matrix[r[:, None], c] # shuffles rows matrix = matrix[r][:,c] # shuffles columns
列印打亂後的矩陣。
print("Shuffled Matrix:
", matrix)示例 1
在以下示例中,我們打亂第 1 行和第 2 行。
# Import the required library
import torch
# create a matrix
matrix = torch.tensor([[1., 2., 3.],[4., 5., 6.],[7, 8, 9]])
# print matrix
print("Original Matrix:
", matrix)
# shuffle 1st and second row
r = torch.tensor([1, 0, 2])
c = torch.tensor([0, 1, 2])
matrix=matrix[r[:, None], c]
print("Shuffled Matrix:
", matrix)輸出
Original Matrix: tensor([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) Shuffled Matrix: tensor([[4., 5., 6.], [1., 2., 3.], [7., 8., 9.]])
請注意,第 1 行和第 2 行已打亂。
示例 2
在以下示例中,我們打亂第 2 列和第 3 列。
# Import the required library
import torch
# create a matrix
matrix = torch.tensor([[1., 2., 3.],[4., 5., 6.],[7, 8, 9]])
# print matrix
print("Original Matrix:
", matrix)
# shuffle 2nd and 3rd columns
r = torch.tensor([0, 1, 2])
c = torch.tensor([0, 2, 1])
matrix_col_Shuffled = matrix[r][:,c]
print("Shuffled Matrix:
", matrix_col_Shuffled)輸出
Original Matrix: tensor([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) Shuffled Matrix: tensor([[1., 3., 2.], [4., 6., 5.], [7., 9., 8.]])
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP