Python 如何检索整行或整列的数组
Python提供了多种内建方法来检索数组的整行或整列。我们可以使用切片符号方法、Numpy库、列表推导和for循环来检索数组的整行或整列。在本文中,我们将探讨所有这些方法,并附带示例来检索数组的行或列。
方法1:使用切片符号
使用切片符号,我们可以从数组中提取一部分元素。我们使用“:”符号来指定子集的起始和结束索引。要检索整行或整列,我们需要将起始索引或结束索引指定为“:”。
语法
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]
方法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”函数来检索数组的整列。
# 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]]
方法3:使用列表推导式
我们可以通过使用列表推导式来循环遍历数组的行和列,并将元素添加到一个列表中,从而获取整个行或列的数组。列表推导式是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]
方法4:使用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中提供了一种简洁的方法来创建列表。根据数组的大小,我们可以选择任何一种方法来检索数组的整行或整列。