如何在 Python 中检索数组的整行或整列?

pythonserver side programmingprogramming

Python 提供了各种内置方法来检索数组的整行或整列。我们可以使用切片符号方法、Numpy 库、列表推导和 for 循环来检索数组的整行或整列。在本文中,我们将通过示例探索所有方法来检索数组的行或列。

方法 1:使用切片符号

使用切片符号,我们从数组中提取元素的子集。我们使用":"符号来指定子集的起始和结束索引。要检索整行或整列,我们需要将起始或结束索引指定为":"。

语法

array_name[start_index:end_index]

此处,array_name 是数组的名称,start_index 是要提取的元素的起始索引,end_index 是要从列表中排除的最后一个元素的索引。

示例

在下面的示例中,我们使用 NumPy 库创建了一个 2D 数组。然后,我们使用切片符号检索数组的第二行和第二列。我们指定了":"作为起始索引以获取整行,指定了":"作为结束索引以获取整列。

# 使用切片符号检索数组的整行
import numpy as np

# 创建 2D 数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 检索第二行
row = arr[1, :]

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

# 检索第二列
col = arr[:, 1]

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

输出

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

方法 2:使用 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"函数来检索数组的整个列。

# 使用 NumPy 检索数组的整行
import numpy as np

# 创建 2D 数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 使用 NumPy 检索第二行
row = np.take(arr, indices=[1], axis=0)

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

# 使用 NumPy 检索第二列
col = np.take(arr, indices=[1], axis=1)

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

输出

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

方法 3:使用列表推导式

我们可以使用列表推导式通过循环遍历数组的行和列并将元素附加到列表中来检索数组的整行或整列。列表推导式是在 Python 中创建列表的更简洁的方法。

语法

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

这里,表达式是循环遍历旧列表中的元素并检查列表中的每个元素的条件是真还是假。如果条件为真,则将元素添加到新列表中。

示例

在下面的示例中,我们使用列表推导来检索数组的第二行和第二列。我们循环遍历数组的行和列,并将元素附加到列表中。

# 使用列表推导检索数组的整行
import numpy as np

# 创建 2D 数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 检索第二行
row = [arr[1, j] for j in range(arr.shape[1])]

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

# 检索第二列
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]

方法 4:使用 for 循环

要检索数组的整行或整列,我们可以简单地循环遍历数组的行和列并将元素存储在列表中。

语法

For i in range (array)

这里,i 是用于迭代数组的行和列的索引。

示例

在下面的示例中,我们使用 for 循环来检索数组的第二行和第二列。我们循环遍历数组的行和列,并将元素存储在列表中。

# 使用 for 循环检索数组的整行
import numpy as np

# 创建 2D 数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 检索第二行
row = []
for j in range(arr.shape[1]):
row.append(arr[1, j])

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

# 检索第二列
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 中创建列表的简洁方法。根据数组的大小,我们可以选择任何方法来检索数组的整行或整列。


相关文章