如何在Python中檢索陣列的整行或整列?


Python 提供多種內建方法來檢索陣列的整行或整列。我們可以使用切片表示法、NumPy庫、列表推導式和for迴圈來檢索陣列的整行或整列。在本文中,我們將透過示例探討所有這些方法來檢索陣列的行或列。

方法一:使用切片表示法

使用切片表示法,我們可以從陣列中提取元素的子集。“:”表示法用於指定子集的起始和結束索引。要檢索整行或整列,我們需要將起始索引或結束索引指定為“:”。

語法

array_name[start_index:end_index]

這裡,`array_name` 是陣列的名稱,`start_index` 是要提取的元素的起始索引,`end_index` 是要從列表中排除的最後一個元素的索引。

示例

在下面的示例中,我們使用NumPy庫建立了一個二維陣列。然後,我們使用切片表示法檢索陣列的第二行和第二列。我們為起始索引指定了“:”以獲取整行,為結束索引指定了“:”以獲取整列。

# Retrieving an entire row of an array using slice notation
import numpy as np

# Create a 2D array
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Retrieve the second row
row = arr[1, :]

print("Entire Row:")
print(row)

# Retrieve the second column
col = arr[:, 1]

print("Entire Column:")
print(col)

輸出

Entire Row:
[4 5 6]
Entire Column:
[2 5 8]

方法二:使用NumPy陣列

NumPy是一個主要用於處理陣列的Python庫。它提供了許多用於建立、操作和對陣列執行運算的函式。NumPy提供`take`函式來檢索Python陣列中的整行或整列。

語法

numpy.take(array, indices, axis= None)

這裡,`take`函式接受三個引數——我們要從中檢索行或列的陣列、行或列索引以及我們要從中檢索行或列的軸。如果要檢索行,則指定`axis=0`;如果要檢索列,則指定`axis=1`。

示例

在下面的示例中,我們使用了NumPy的`take`函式來檢索陣列的第二行。我們指定了`indices=[1]`來檢索第二行,並指定了`axis=0`來指示我們要檢索一行。類似地,我們可以使用NumPy的`take`函式來檢索陣列的整列。

# Retrieving an entire row of an array using NumPy
import numpy as np

# Create a 2D array
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Retrieve the second row using NumPy
row = np.take(arr, indices=[1], axis=0)

print("Entire Row:")
print(row)

# Retrieve the second column using NumPy
col = np.take(arr, indices=[1], axis=1)

print("Entire Column:")
print(col)

輸出

Entire Row:
[[4 5 6]]
Entire Column:
[[2]
 [5]
 [8]]

方法三:使用列表推導式

我們可以透過遍歷陣列的行和列並將元素新增到列表中,使用列表推導式來檢索陣列的整行或整列。列表推導式是建立Python列表的一種更簡潔的方式。

語法

newList = [expression(element) for element in oldList if condition]

這裡,表示式迴圈遍歷舊列表中的元素,並檢查列表中每個元素的條件是否為真或假。如果條件為真,則該元素將新增到新列表中。

示例

在下面的示例中,我們使用了列表推導式來檢索陣列的第二行和第二列。我們遍歷了陣列的行和列,並將元素新增到列表中。

# Retrieving an entire row of an array using list comprehension
import numpy as np

# Create a 2D array
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Retrieve the second row
row = [arr[1, j] for j in range(arr.shape[1])]

print("Entire Row:")
print(row)

# Retrieve the second column
col = [arr[i, 1] for i in range(arr.shape[0])]

print("Entire Column:")
print(col)

輸出

Entire Row:
[4, 5, 6]
Entire Column:
[2, 5, 8]

方法四:使用for迴圈

要檢索陣列的整行或整列,我們可以簡單地遍歷陣列的行和列並將元素儲存在列表中。

語法

For i in range (array)

這裡,`i`是用於迭代陣列行和列的索引。

示例

在下面的示例中,我們使用了for迴圈來檢索陣列的第二行和第二列。我們遍歷了陣列的行和列,並將元素儲存在列表中。

# Retrieving an entire row of an array using for loop
import numpy as np

# Create a 2D array
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Retrieve the second row
row = []
for j in range(arr.shape[1]):
   row.append(arr[1, j])

print("Entire Row:")
print(row)

# Retrieve the second column
col = []
for i in range(arr.shape[0]):
   col.append(arr[i, 1])

print("Entire Column:")
print(col)

輸出

Entire Row:
[4, 5, 6]
Entire Column:
[2, 5, 8]

結論

在本文中,我們討論瞭如何使用切片表示法、NumPy陣列、列表推導式和for迴圈等方法來檢索陣列的整行或整列。切片表示法使用“:”表示法來獲取陣列的整行或整列。列表推導式提供了一種建立Python列表的簡潔方法。根據陣列的大小,我們可以選擇任何方法來檢索陣列的整行或整列。

更新於:2023年7月11日

6000+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

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