
- 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 陣列中交換列是指交換陣列中兩列或多列的位置。此操作可以對一維和多維陣列執行。
交換列的主要方法涉及**切片**和**索引**,這允許您根據需要訪問和重新排列列。
使用索引交換列
使用索引在 NumPy 陣列中交換列是一種技術,透過根據索引選擇和重新分配特定列來更改二維陣列中列的順序。
示例
在下面的示例中,我們使用索引交換二維 NumPy 陣列的“第一”列和“最後一”列:
import numpy as np # Creating a 2D NumPy array arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Swapping the first and last columns arr[:, [0, 2]] = arr[:, [2, 0]] print("Array after swapping columns:") print(arr)
以下是獲得的輸出:
Array after swapping columns: [[3 2 1] [6 5 4] [9 8 7]]
交換多列
在 NumPy 陣列中交換多列涉及同時更改兩列以上列的順序。該過程使用高階索引來指定要交換的列及其新位置。
示例
在這個例子中,我們交換二維陣列的三列,第一列移到第三個位置,第二列移到第一個位置,第三列移到第二個位置:
import numpy as np # Create a 2D array arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Swap columns in the order: 1st to 3rd, 2nd to 1st, 3rd to 2nd arr[:, [0, 1, 2]] = arr[:, [1, 2, 0]] print("Array after swapping columns:") print(arr)
這將產生以下結果:
Array after swapping columns: [[2 3 1] [5 6 4] [8 9 7]]
交換三維陣列中的列
在 NumPy 中交換三維陣列中的列涉及重新排列陣列沿其一個軸上的元素,通常是**第二個軸**(軸 1),在處理三維陣列的切片時,它對應於列。
示例
在下面的示例中,我們沿著三維陣列的第二個軸(軸 2)交換第一列和最後一列。陣列沿著前兩個軸切片,第三個軸被索引以執行列交換:
import numpy as np # Creating a 3D NumPy array arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) # Swapping the first and last columns along the second axis arr[:, :, [0, 2]] = arr[:, :, [2, 0]] print("3D array after swapping columns:") print(arr)
以上程式碼的輸出如下:
3D array after swapping columns: [[[ 3 2 1] [ 6 5 4]] [[ 9 8 7] [12 11 10]]]
交換非相鄰列
在 NumPy 陣列中交換非相鄰列是指重新排列不直接相鄰的列。
此操作可以在二維和三維陣列中執行,它使用高階索引技術來指定要交換的列。
示例
在下面的示例中,我們使用高階索引在二維 NumPy 陣列中交換非相鄰列,即第一列和第三列:
import numpy as np # Create a 2D array arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) # Swap the first (index 0) and third (index 2) columns arr[:, [0, 2]] = arr[:, [2, 0]] print("Array after swapping non-adjacent columns:") print(arr)
獲得的輸出如下所示:
Array after swapping non-adjacent columns: [[ 3 2 1 4] [ 7 6 5 8] [11 10 9 12]]
交換結構化陣列中的列
要交換結構化陣列中的列,我們需要重新排列結構化陣列中的欄位,同時保持每個記錄的完整性。
NumPy 中的結構化陣列允許您定義具有異構資料型別的陣列,並且陣列的每個元素可以包含多個欄位。
示例
在這個例子中,我們使用基於欄位的索引在結構化 NumPy 陣列中交換列“A”和“C”:
import numpy as np # Create a structured array dtype = [('A', 'i4'), ('B', 'i4'), ('C', 'i4')] arr = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)], dtype=dtype) # Swap columns 'A' and 'C' arr[['A', 'C']] = arr[['C', 'A']] print("Structured array after swapping columns 'A' and 'C':") print(arr)
執行上述程式碼後,我們將得到以下輸出:
Structured array after swapping columns 'A' and 'C': [(3, 2, 1) (6, 5, 4) (9, 8, 7)]
使用 swapaxes() 函式交換列
我們可以使用 np.swapaxes() 函式進行涉及多個軸的更復雜操作。此函式允許您交換陣列的兩個指定軸,這在高維陣列中特別有用。
以下是語法:
numpy.swapaxes(a, axis1, axis2)
其中,
- **a:** 要交換軸的輸入陣列。
- **axis1:** 要交換的第一個軸。
- **axis2:** 要交換的第二個軸。
示例
在下面的示例中,我們使用 np.swapaxes() 函式交換第二個軸和第三個軸,有效地重新排序三維陣列中的列:
import numpy as np # Creating a 3D NumPy array arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) # Swapping axes 1 and 2 arr_swapped = np.swapaxes(arr, 1, 2) print("3D array after swapping axes:") print(arr_swapped)
產生的結果如下:
3D array after swapping axes: [[[ 1 4] [ 2 5] [ 3 6]] [[ 7 10] [ 8 11] [ 9 12]]]