如何在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列表的簡潔方法。根據陣列的大小,我們可以選擇任何方法來檢索陣列的整行或整列。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP