如何访问多维NumPy数组的不同行
NumPy多维数组
顾名思义,多维数组是一种可以描述为以超过两个维度(2D)的格式定义和存储数据的技术。Python允许通过在一个列表函数内嵌套另一个列表函数来实现多维数组。
以下是使用NumPy在Python中创建单维和多维数组的一些示例。
单维数组
示例
import numpy as np
simple_arr = np.array([0, 1, 2, 3, 4])
print(simple_arr )
输出
[0 1 2 3 4]
步骤
- 导入NumPy库
-
使用NumPy array()函数创建一个一维数组
-
使用print()函数打印数组的内容
二维数组
示例
import numpy as np
simple_arr = np.array([[1, 2, 3], [4, 5, 6]])
print(simple_arr )
输出
[[1 2 3]
[4 5 6]]
步骤
-
导入NumPy库
-
使用NumPy的array()函数创建一个二维数组
-
使用print()函数打印数组的内容
三维数组
示例
import numpy as np
simple_arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(simple_arr )
输出
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
步骤
-
导入NumPy库
-
使用NumPy array()函数创建一个三维数组
-
使用print()函数打印数组的内容
访问2D NumPy数组的行
在Python中,我们可以使用两个索引来访问二维数组的元素,以达到它们各自的位置。第一个索引指的是元素在列表中的位置,而第二个索引指的是它们出现的顺序。当我们只定义一个带有数组名称的索引时,索引将返回存储在该数组中的所有元素。
索引二维数组
示例
考虑一个二维数组 –
import numpy as np
array1 = np.arange(12).reshape(4,3)
print(array1)
输出
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
步骤
- 使用np.arange()方法创建一个一维数组,并输入12。
-
接下来,使用reshape()函数将一维数组转换成二维数组。
-
将结果赋给array1。
-
使用print()方法打印array1的内容。
我们可以通过两个索引来访问该数组的元素,一个索引对应每一行,一个索引对应每一列。两个索引都从0开始。例如,要访问“8”,使用索引2作为行索引,索引2作为列索引。
print(array1[2][2])
输出
8
在Python中,多维索引数组的工作方式与2D或3D数组相同。只需使用array [index1,index2,index3]来获取多维数组中的特定元素。您只需要根据数组的维度添加indexN。
切片2D数组
切片类似于索引,但与从数组中选择一个特定元素不同,它使用沿一个或两个维度的索引范围选择一组元素。
如果您想从二维数组中切片元素,您需要指定行索引和列索引为[row_index,column_index]。
要切片多个元素,您还可以使用行索引和列索引的范围-
[start_row_index:end_row_index, start_column_index:end_column_index]
示例
例如,您可以选择第一行的前两列的[0:1, 0:2]区域。
import numpy as np
array1 = np.arange(16).reshape(4,4)
print(array1)
print(array1[0:2, 1:3])
输出
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
[[1 2]
[5 6]]
步骤
- 使用numpy的arange方法,创建一个4×4的numpy数组,并将其重塑为一个4×4的矩阵。
-
从数组中打印整个4×4的矩阵
-
切分原始数组以提取子矩阵-
- 使用索引0:2指定原始数组的前两行。
-
通过使用索引1:3,指定数组的第二和第三列。
-
使用这两个索引范围切分原始数组。
-
打印通过切片提取的子矩阵。
如果要在NumPy中切割多维数组,可以使用与切割2D或3D数组相同的语法;
array [start:end, start:end, start:end]
例如
my_array[1:3, 1:4, 1:3]
将为您提供在任何维度上切割多维数组的功能。
结论
NumPy多维数组是数据分析和操作的强大工具。它们允许我们以一种结构化的方式存储和访问数据,从而更容易处理大型数据集。
本文讨论了如何访问多维NumPy数组的不同行。我们讨论了使用单维和多维数组、索引和切片数组以及访问2D NumPy数组行。我们还介绍了一些在实践中如何使用这些技术的示例。
有了这些知识,您应该能够在自己的项目中有效地访问多维NumPy数组的不同行。