如何訪問多維 NumPy 陣列的不同行?


NumPy 多維陣列

顧名思義,多維陣列是一種可以描述為以具有多於兩個維度(2D)的格式定義和儲存資料的方式。Python 透過將列表函式巢狀在另一個列表函式內部來實現多維陣列。

以下是一些關於如何使用 NumPy 在 Python 中建立單維和多維陣列的示例。

一維陣列

示例

import numpy as np
simple_arr = np.array([0, 1, 2, 3, 4])
print(simple_arr )

輸出

 [0 1 2 3 4]

演算法

  • 匯入 NumPy 庫

  • 使用 NumPy 的 array() 函式建立一個一維陣列

  • 使用 print() 函式列印陣列的內容

二維陣列

示例

import numpy as np
simple_arr = np.array([[1, 2, 3], [4, 5, 6]])
print(simple_arr )

輸出

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

演算法

  • 匯入 NumPy 庫

  • 使用 NumPy 的 array() 函式建立一個二維陣列

  • 使用 print() 函式列印陣列的內容

三維陣列

示例

import numpy as np
simple_arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(simple_arr )

輸出

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

演算法

  • 匯入 NumPy 庫

  • 使用 NumPy 的 array() 函式建立一個三維陣列

  • 使用 print() 函式列印陣列的內容

訪問 2D NumPy 陣列的行

在 Python 中,我們可以使用兩個索引來訪問二維陣列的元素以到達它們各自的位置。第一個索引指的是列表上元素的位置,而第二個索引指的是它們出現的順序。當我們只用陣列名稱定義一個索引時,該索引將返回儲存在該陣列中的所有元素。

索引二維陣列

示例

考慮一個二維陣列 -

import numpy as np
array1 = np.arange(12).reshape(4,3)
print(array1)

輸出

array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])

演算法

  • 使用 np.arange() 方法建立一個輸入為 12 的一維陣列。

  • 然後,使用 reshape() 函式將一維陣列轉換為二維陣列

  • 將結果賦值給 array1。

  • 使用 print() 方法列印 array1 的內容

我們可以透過兩個索引訪問此陣列中的元素,一個用於每一行,一個用於每一列。兩個索引都從 0 開始。因此,例如,要訪問“8”,請對行使用索引“2”,對列使用索引“2”。

print(array1[2][2])

輸出

8

在 Python 中,多維索引陣列的工作方式與 2D 或 3D 陣列相同。只需使用 array[index1, index2, index3] 即可獲取多維陣列中的特定元素。您只需根據陣列的維度新增 indexN 即可。

切片 2D 陣列

切片類似於索引,但它不是從陣列中選擇一個特定元素,而是使用一個索引範圍沿著一個或兩個維度選擇元素的子集。

如果要從二維陣列中切片元素,則需要指定行索引和列索引,如 [row_index, column_index]。

對於切片多個元素,您還可以對行索引和列索引使用範圍 -

[start_row_index:end_row_index, start_column_index:end_column_index]

示例

例如,您可以選擇從 [0:1, 0:2] 開始的元素,跨越第一行的前兩列。

import numpy as np
array1 = np.arange(16).reshape(4,4)
print(array1)
print(array1[0:2, 1:3])

輸出

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
[[1 2]
[5 6]]

演算法

  • 使用 numpy 的 arange 方法,建立一個 4x4 的 numpy 陣列並將其重塑為 4x4 矩陣。

  • 列印陣列中的整個 4x4 矩陣

  • 切片原始陣列以提取子矩陣 -

    • 使用索引 0:2 指定原始陣列的前兩行。

    • 透過使用索引 1:3,指定陣列的第二列和第三列。

    • 使用這兩個索引範圍切片原始陣列。

  • 列印透過切片提取的子矩陣。

如果要切片 NumPy 中的多維陣列,則可以使用與切片 2D 或 3D 陣列相同的語法;

array [start:end, start:end, start:end]

例如

my_array[1:3, 1:4, 1:3]

將允許您沿任何維度切片多維陣列。

結論

NumPy 多維陣列是用於資料分析和操作的強大工具。它們允許我們以結構化的方式儲存和訪問資料,從而更輕鬆地處理大型資料集。

本文討論瞭如何訪問多維 NumPy 陣列的不同行。我們討論了使用單維和多維陣列、索引和切片陣列以及訪問 2D NumPy 陣列的行。我們還檢查了一些關於如何在實踐中使用這些技術的示例。

有了這些知識,您應該能夠在自己的專案中有效地訪問多維 NumPy 陣列的不同行。

更新於: 2023年3月28日

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告