📜  如何访问多维 NumPy 数组的不同行?(1)

📅  最后修改于: 2023-12-03 15:38:55.308000             🧑  作者: Mango

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

通常,我们都会遇到需要访问多维 NumPy 数组中某个特定行或一组行的情况。这里我们介绍如何实现多维 NumPy 数组的行访问和切片操作。

行访问

我们可以使用 NumPy 数组的索引方法和冒号操作符 ':' 来访问多维数组中的行。

访问单个行

对于一个二维数组 arr,我们可以使用 arr[i] 来访问第 i 行。这里的 i 是行号,从 0 开始计数。

import numpy as np

# 创建一个2x3的二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])

# 访问第1行
print(arr[0])

执行结果:

[1 2 3]
访问多个行

我们同样可以使用切片语法来访问多个行。例如,要访问从第 1 行到第 3 行的所有行,可以这样做:

import numpy as np

# 创建一个3x3的二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 访问第1~3行的所有行
print(arr[0:3])

执行结果:

[[1 2 3]
 [4 5 6]
 [7 8 9]]
行切片

有时候我们需要获取数组中的某些行的某些列,这时可以使用行切片。行切片的语法是:[start:end:step],其中 start 表示切片开始的索引,end 表示终止的索引(但不包括该索引对应的元素),step 表示步长,默认为 1。

访问单个行的部分列

对于一个二维数组 arr,我们可以使用 arr[i][start:end] 来访问第 i 行的从 start 列到 end 列的所有元素。

import numpy as np

# 创建一个2x3的二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])

# 访问第1行的第2~3列元素
print(arr[0][1:3])

执行结果:

[2 3]
访问多个行的部分列

同样可以使用切片操作符 ':' 来访问多个行和多个列。例如,要访问从第 1 行到第 3 行的第 2 列到第 3 列的所有元素,可以这样做:

import numpy as np

# 创建一个3x3的二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 访问第1~3行的第2~3列元素
print(arr[0:3, 1:3])

执行结果:

[[2 3]
 [5 6]
 [8 9]]
总结

以上就是如何访问多维 NumPy 数组的不同行的方法。我们可以通过索引和切片的方式,灵活地访问数组中的元素。