如何访问多维 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 即可。
切片二维数组
切片类似于索引,但它不是从数组中选择一个特定元素,而是使用一个或两个维度上的索引范围来选择元素子集。
如果要从二维数组中切片元素,则需要将行索引和列索引指定为 [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 方法,创建一个 4x4 numpy 数组并将其重塑为 4x4 矩阵。
从数组中打印整个 4x4 矩阵
对原始数组进行切片以提取子矩阵 -
使用索引 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 数组的不同行。