如何访问多维 Numpy 数组的不同行?

numpyserver side programmingprogramming

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 数组的不同行。


相关文章