如何將元組的一維陣列轉換為二維 NumPy 陣列?


在使用 Python 處理資料時,通常需要轉換和運算元組以促進分析和計算。一種常見的情況是將元組的一維陣列轉換為二維 NumPy 陣列。這種轉換允許更輕鬆地索引、切片和應用陣列操作。

在本文中,我們將重點關注將元組的一維陣列轉換為 NumPy 陣列的轉換過程。

元組的一維陣列

元組的一維陣列指的是一種資料結構,其中元組按順序排列在一維陣列中。

例如,考慮以下元組的一維陣列

data = [(1, 2), (3, 4), (5, 6), (7, 8)]

二維 NumPy 陣列

二維 NumPy 陣列,也稱為二維陣列或矩陣,是 Python 中 NumPy 庫提供的一種資料結構。它透過引入額外的維度擴充套件了一維陣列的概念,建立了一個類似網格的行和列結構。

下面提到了不同的方法,其中我討論了將元組的一維陣列轉換為二維 NumPy 陣列的不同方法。

使用 numpy.array() 函式

在這種方法中,我們將使用 numpy.array() 函式將元組的一維陣列轉換為 NumPy 陣列。

請考慮以下所示的程式碼。

示例

import numpy as np

# Sample 1D array of tuples
data = [(1, 2), (3, 4), (5, 6), (7, 8)]

# Convert 1D array of tuples to Numpy array
numpy_array = np.array(data)

# Print the Numpy array
print("Converted Numpy array:")
print(numpy_array)

解釋

  • 我們將 `numpy` 庫匯入為 `np`。

  • 我們定義了一個名為 `data` 的元組的一維陣列。

  • 透過使用 `np.array()` 函式並將 `data` 作為引數傳遞,我們將元組的一維陣列轉換為 NumPy 陣列。

  • 最後,我們列印生成的 NumPy 陣列。

  • 輸出演示了轉換後的 NumPy 陣列,其中每個元組都成為二維陣列中的一行。

輸出

# Converted Numpy array:
[[1 2]
[3 4]
[5 6]
[7 8]]

使用列表推導式和 numpy.vstack()

在這種方法中,我們將使用列表推導式提取元組的元素,然後使用 numpy.vstack() 將它們垂直堆疊到二維 NumPy 陣列中。

請考慮以下所示的程式碼。

示例

import numpy as np

# Sample 1D array of tuples
data = [(1, 2), (3, 4), (5, 6), (7, 8)]

# Convert 1D array of tuples to Numpy array
numpy_array = np.vstack([np.array(t) for t in data])

# Print the Numpy array
print("Converted Numpy array:")
print(numpy_array)

解釋

  • 我們將 `numpy` 庫匯入為 `np`。

  • 我們定義了一個名為 `data` 的元組的一維陣列。

  • 使用列表推導式,我們遍歷 `data` 中的每個元組 `t` 並使用 `np.array(t)` 將其轉換為 NumPy 陣列。

  • 然後,我們使用 `np.vstack()` 將生成的 NumPy 陣列垂直堆疊到二維 NumPy 陣列中。

  • 最後,我們列印生成的 NumPy 陣列。

  • 輸出演示了轉換後的 NumPy 陣列,其中每個元組都成為二維陣列中的一行。

輸出

# Converted Numpy array:
 [[1 2]
 [3 4]
 [5 6]
 [7 8]]

使用 numpy.reshape() 函式

在這種方法中,我們將使用 numpy.reshape() 函式將元組的一維陣列轉換為二維 NumPy 陣列。

請考慮以下所示的程式碼。

示例

import numpy as np

# Sample 1D array of tuples
data = [(1, 2), (3, 4), (5, 6), (7, 8)]

# Convert 1D array of tuples to Numpy array
numpy_array = np.array(data).reshape((-1, 2))

# Print the Numpy array
print("Converted Numpy array:")
print(numpy_array)

解釋

  • 我們將 `numpy` 庫匯入為 `np`。

  • 我們定義了一個名為 `data` 的元組的一維陣列。

  • 透過使用 `np.array(data)`,我們將元組的一維陣列轉換為 NumPy 陣列。

  • 然後,我們對 NumPy 陣列應用 `reshape((-1, 2))` 函式,該函式將其重塑為一個具有 2 列的二維陣列,並自動確定行數。

  • 最後,我們列印生成的 NumPy 陣列。

  • 輸出演示了轉換後的 NumPy 陣列,其中每個元組都成為二維陣列中的一行。

輸出

# Converted Numpy array:
 [[1 2]
 [3 4]
 [5 6]
 [7 8]]

結論

將元組的一維陣列轉換為二維 NumPy 陣列是資料處理和分析中的一項常見任務。在本文中,我們探討了實現此轉換的三種不同方法:使用 numpy.array() 函式、使用列表推導式和 numpy.vstack() 以及使用 numpy.reshape() 函式。

更新於: 2023年8月4日

5K+ 閱讀量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.