如何访问多维 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 方法,创建一个 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 数组的不同行。

更新于: 2023年3月28日

1K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告