
- NumPy 教程
- NumPy - 首頁
- NumPy - 簡介
- NumPy - 環境
- NumPy 陣列
- NumPy - Ndarray 物件
- NumPy - 資料型別
- NumPy 建立和運算元組
- NumPy - 陣列建立例程
- NumPy - 陣列操作
- NumPy - 從現有資料建立陣列
- NumPy - 從數值範圍建立陣列
- NumPy - 迭代陣列
- NumPy - 重塑陣列
- NumPy - 連線陣列
- NumPy - 堆疊陣列
- NumPy - 分割陣列
- NumPy - 展平陣列
- NumPy - 轉置陣列
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高階索引
- NumPy 陣列屬性和操作
- NumPy - 陣列屬性
- NumPy - 陣列形狀
- NumPy - 陣列大小
- NumPy - 陣列步幅
- NumPy - 陣列元素大小
- NumPy - 廣播
- NumPy - 算術運算
- NumPy - 陣列加法
- NumPy - 陣列減法
- NumPy - 陣列乘法
- NumPy - 陣列除法
- NumPy 高階陣列操作
- NumPy - 交換陣列的軸
- NumPy - 位元組交換
- NumPy - 複製和檢視
- NumPy - 元素級陣列比較
- NumPy - 過濾陣列
- NumPy - 連線陣列
- NumPy - 排序、搜尋和計數函式
- NumPy - 搜尋陣列
- NumPy - 陣列的並集
- NumPy - 查詢唯一行
- NumPy - 建立日期時間陣列
- NumPy - 二元運算子
- NumPy - 字串函式
- NumPy - 數學函式
- NumPy - 統計函式
- NumPy - 矩陣庫
- NumPy - 線性代數
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 繪製直方圖
- NumPy - NumPy 的 I/O
- NumPy 排序和高階操作
- NumPy - 排序陣列
- NumPy - 沿軸排序
- NumPy - 使用花式索引排序
- NumPy - 結構化陣列
- NumPy - 建立結構化陣列
- NumPy - 操作結構化陣列
- NumPy - 欄位訪問
- NumPy - 記錄陣列
- Numpy - 載入陣列
- Numpy - 儲存陣列
- NumPy - 向陣列追加值
- NumPy - 交換陣列的列
- NumPy - 向陣列插入軸
- NumPy 處理缺失資料
- NumPy - 處理缺失資料
- NumPy - 識別缺失值
- NumPy - 刪除缺失資料
- NumPy - 估算缺失資料
- NumPy 效能最佳化
- NumPy - 使用陣列進行效能最佳化
- NumPy - 使用陣列進行向量化
- NumPy - 陣列的記憶體佈局
- Numpy 線性代數
- NumPy - 線性代數
- NumPy - 矩陣庫
- NumPy - 矩陣加法
- NumPy - 矩陣減法
- NumPy - 矩陣乘法
- NumPy - 元素級矩陣運算
- NumPy - 點積
- NumPy - 矩陣求逆
- NumPy - 行列式計算
- NumPy - 特徵值
- NumPy - 特徵向量
- NumPy - 奇異值分解
- NumPy - 求解線性方程組
- NumPy - 矩陣範數
- NumPy 元素級矩陣運算
- NumPy - 求和
- NumPy - 平均值
- NumPy - 中位數
- NumPy - 最小值
- NumPy - 最大值
- NumPy 集合運算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 並集
- NumPy - 差集
- NumPy 有用資源
- NumPy 編譯器
- NumPy - 快速指南
- NumPy - 有用資源
- NumPy - 討論
NumPy - 交換陣列的軸
在 NumPy 中交換陣列的軸
在 NumPy 中交換軸允許您更改陣列中維度的順序。您可以使用swapaxes() 函式和transpose() 函式在 NumPy 中交換陣列的軸。
在 NumPy 中,陣列可以有多個維度,每個維度稱為一個軸。例如,一個二維陣列(矩陣)有兩個軸:行和列。在三維陣列(張量)中,有三個軸:深度、高度和寬度。
- 軸 0 指的是第一個維度(通常是行)。
- 軸 1 指的是第二個維度(通常是列)。
- 軸 2 指的是第三個維度,以此類推
使用 swapaxes() 函式
NumPy 中的 np.swapaxes() 函式允許您交換陣列中兩個指定的軸。當您需要重新組織陣列的結構時,此函式特別有用,例如在二維陣列中切換行和列,或在多維陣列中重新排序維度。
此函式不會建立資料的副本,而是返回交換了指定軸的陣列的新檢視。它不涉及在記憶體中複製陣列的資料。
以下是 swapaxes() 函式的語法:
numpy.swapaxes(arr, axis1, axis2)
其中,
- arr 是輸入陣列。
- axis1 是要交換的第一個軸。
- axis2 是要交換的第二個軸。
示例
在下面的示例中,我們使用 NumPy 中的 swapaxes() 函式交換二維陣列中的行和列:
import numpy as np # Creating a 2D array arr = np.array([[1, 2, 3], [4, 5, 6]]) # Swapping axes 0 and 1 (rows and columns) swapped = np.swapaxes(arr, 0, 1) print("Original Array:") print(arr) print("\nArray After Swapping Axes:") print(swapped)
獲得以下輸出:
Original Array: [[1 2 3] [4 5 6]] Array After Swapping Axes: [[1 4] [2 5] [3 6]]
使用 transpose() 函式
我們還可以使用 transpose() 函式在 NumPy 中交換陣列的軸。與 swapaxes() 函式(交換兩個特定軸)不同,transpose() 函式用於根據指定的模式重新排序陣列的所有軸。
以下是 transpose() 函式的語法:
numpy.transpose(a, axes=None)
其中,
- a 是要重新排序其軸的輸入陣列。
- axes 是一個元組或列表,指定所需的軸順序。如果 axes 為 None,則反轉軸的順序。
示例:矩陣轉置
矩陣轉置是交換二維陣列的行和列的操作:
import numpy as np # Creating a 2D array (matrix) arr = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing the matrix transposed = np.transpose(arr) print("Original Array:") print(arr) print("\nTransposed Array:") print(transposed)
這將產生以下結果:
Original Array: [[1 2 3] [4 5 6]] Transposed Array: [[1 4] [2 5] [3 6]]
示例:重新排序三維陣列中的軸
在這裡,我們使用 transpose() 函式重新排序多維陣列中的維度:
import numpy as np # Creating a 3D array arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) # Transposing with custom axis order transposed = np.transpose(arr, (1, 0, 2)) print("Original Array Shape:", arr.shape) print("Transposed Array Shape:", transposed.shape) print("\nTransposed Array:") print(transposed)
這將產生以下結果:
Original Array Shape: (2, 2, 2) Transposed Array Shape: (2, 2, 2) Transposed Array: [[[1 2] [5 6]] [[3 4] [7 8]]]
廣告