如何在 Python 中將一維陣列作為列轉換為二維陣列?


陣列是程式設計中基本的資料結構,使我們能夠高效地儲存和操作值集合。Python 作為一種通用的程式語言,提供了許多用於處理陣列和矩陣的工具和庫。特別是,將一維陣列轉換為二維陣列的能力在處理表格資料或執行需要二維結構的操作時是一項必不可少的技能。

在本文中,我們將探討使用 Python 將一維陣列轉換為二維陣列列的過程。我們將介紹各種方法,從手動操作到利用 NumPy 等強大的庫。無論您是初學者還是經驗豐富的 Python 程式設計師,本指南都將為您提供有效地將資料轉換為二維陣列格式所需的知識和技術。

理解一維和二維陣列

一維陣列

一維陣列,也稱為一維陣列或向量,表示按單行或單列排列的元素集合。陣列中的每個元素都使用索引進行訪問,該索引指示其在陣列中的位置。例如,一維陣列可以儲存數字序列,例如 [1, 2, 3, 4, 5]。

二維陣列

二維陣列,也稱為二維陣列或矩陣,透過在行和列中組織元素來擴充套件一維陣列的概念。它可以視覺化為網格或表格,其中每個元素都由其行和列索引唯一標識。例如,二維陣列可以儲存數字表,例如:

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

現在讓我們關注我們可以使用的不同方法。

使用 Numpy column_stack

請考慮以下程式碼。

示例

import numpy as np

# Example 1: Convert two 1-D arrays as columns into a 2-D array

# Input arrays
array1 = np.array([1, 2, 3, 4])
array2 = np.array([5, 6, 7, 8])

# Convert 1-D arrays into columns of a 2-D array
result = np.column_stack((array1, array2))

# Output the 2-D array
print(result)

解釋

在這個例子中,我們利用 NumPy 庫中的 np.column_stack() 函式將一維陣列 array1 和 array2 作為列轉換為二維陣列。column_stack() 函式接受一維陣列序列,並將它們水平堆疊以形成二維陣列。我們將陣列 array1 和 array2 作為引數傳遞給 column_stack() 函式。

輸出

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

使用 numpy vstack()

請考慮以下程式碼。

示例

import numpy as np

# Example 2: Convert three 1-D arrays as columns into a 2-D array

# Input arrays
array1 = np.array([1, 2, 3, 4])
array2 = np.array([5, 6, 7, 8])
array3 = np.array([9, 10, 11, 12])

# Convert 1-D arrays into columns of a 2-D array
result = np.vstack((array1, array2, array3)).T

# Output the 2-D array
print(result)

解釋

在這個例子中,我們有三個一維陣列:array1、array2 和 array3。為了將這些一維陣列轉換為二維陣列的列,我們使用 np.vstack() 函式,該函式垂直堆疊陣列。我們將陣列 array1、array2 和 array3 作為引數傳遞給 np.vstack() 以將它們垂直堆疊到單個二維陣列中。

為了確保一維陣列作為列堆疊,我們使用 .T 屬性來轉置生成的二維陣列。這將行與列互換,有效地將堆疊的陣列轉換為二維陣列的列。

輸出

[[ 1  5  9]
 [ 2  6 10]
 [ 3  7 11]
 [ 4  8 12]]

結論

我們首先了解了一維和二維陣列的概念,重點介紹了它們的差異和用例。

我們探討了兩個強大的 NumPy 函式:np.column_stack() 和 np.vstack()。這些函式使我們能夠輕鬆高效地將一維陣列轉換為二維陣列的列。透過利用 NumPy,我們提高了效能並簡化了程式碼。

透過掌握這些技術,Python 程式設計師可以有效地將資料轉換為二維陣列格式,從而能夠充分利用 Python 進行資料分析、機器學習和科學計算任務。

總之,本綜合指南為您提供了深入瞭解在 Python 中將一維陣列轉換為二維陣列列的各種技術的知識。

更新於:2023年8月4日

瀏覽量:129

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.