如何交換給定 NumPy 陣列的列?


在處理 NumPy 陣列時,可能會有想要交換兩列位置的情況。在本文中,我們將深入探討四種不同的交換給定 NumPy 陣列中列的技術:利用高階索引、使用 NumPy 索引、利用 np.swapaxes 函式以及利用直接賦值。我們將透過示例來理解這些方法。

方法 1:利用高階索引

利用高階索引的潛力,您可以透過精心策劃的列索引程式來重塑 NumPy 陣列中元素的操作過程。

示例

在以下示例中,我們生成一個 NumPy 陣列並使用高階索引來交換第 1 列和第 2 列。

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array[:, [1, 2]] = array[:, [2, 1]]
print(array)

輸出

[[1 3 2]
 [4 6 5]
 [7 9 8]]

方法 2:使用 NumPy 索引

NumPy 索引允許您透過指定列的索引來建立一個具有所需列順序的新陣列。

示例

在下面的示例中,我們生成一個 NumPy 陣列並使用 NumPy 索引的功能來交換第 1 列和第 2 列。

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array = array[:, [0, 2, 1]]
print(array)

輸出

[[1 3 2]
 [4 6 5]
 [7 9 8]]

方法 3:利用 np.swapaxes 函式

np.swapaxes 函式可以用來交換 NumPy 陣列的兩個軸。要交換列,您可以先轉置陣列,交換行,然後將其轉置回來。

示例

在下面的示例中,我們生成一個 NumPy 陣列並使用 np.swapaxes 函式來交換第 1 列和第 2 列。

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array = array.T
array[[1, 2]] = array[[2, 1]]
array = array.T
print(array)

輸出

[[1 3 2]
 [4 6 5]
 [7 9 8]]

方法 4:利用直接賦值

直接賦值可用於透過建立其中一列的臨時副本來交換 NumPy 陣列中的列。

示例

在以下示例中,我們生成一個 NumPy 陣列並使用直接賦值來交換第 1 列和第 2 列。

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
temp = array[:, 1].copy()
array[:, 1] = array[:, 2]
array[:, 2] = temp
print(array)

輸出

[[1 3 2]
 [4 6 5]
 [7 9 8]]

結論

在本文中,我們探討了在 NumPy 陣列中交換列的不同方法。我們討論了高階索引、NumPy 索引、np.swapaxes 函式和直接賦值。每種方法都為您提供了一種簡單且高效的交換列的方法,以滿足您特定需求的特殊性。透過學習這些技術的語法和閱讀示例,您可以獲得選擇最適合您的資料操作任務的方法的能力。

總之,在 NumPy 陣列中交換列的能力是資料操作和分析領域中一項寶貴的技能。

更新於: 2023年8月28日

2K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.