如何在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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告