📌  相关文章
📜  如何在某些索引位置获取 NumPy 数组的值?(1)

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

如何在某些索引位置获取 NumPy 数组的值?

NumPy 是 Python 中最常用的数值计算库之一,它提供了很多用于数组操作的功能。有时候我们需要从一个 NumPy 数组中获取特定索引位置的值。在本文中,我们将介绍如何在 NumPy 中获取指定位置的值。

1. 使用索引

可以使用索引操作符 [] 来获取 NumPy 数组的值。例如,假设我们有一个数组 a,它包含了一些随机的整数:

import numpy as np

a = np.random.randint(0, 10, size=(3, 4))
print(a)

输出:

[[9 9 4 4]
 [4 3 4 0]
 [4 2 2 5]]

现在我们可以通过指定行和列的索引来获取对应的值。例如,要获取第二行第三列的值,可以使用:

print(a[1, 2])  # 输出 4

请注意,索引值是从零开始的。因此,第二行第三列的索引是 (1, 2),而不是 (2, 3)

2. 使用整数数组索引

除了使用单个索引值之外,还可以使用整数数组来获取 NumPy 数组中的值。例如,假设我们有一个如下所示的数组:

b = np.array([[1, 2], [3, 4], [5, 6]])
print(b)

输出:

[[1 2]
 [3 4]
 [5 6]]

现在,假设我们想要获取第一行和第三行的值,可以使用整数数组索引:

rows = np.array([0, 2])
print(b[rows, :])

输出:

[[1 2]
 [5 6]]

请注意,我们使用了冒号 : 来表示要获取所有列的值。

3. 使用布尔数组索引

可以使用布尔数组索引来获取一个条件为真的元素的值。例如,假设我们有一个数组:

c = np.array([[1, 2], [3, 4], [5, 6]])
print(c)

输出:

[[1 2]
 [3 4]
 [5 6]]

现在,假设我们希望获取所有大于 2 的元素的值,可以使用布尔数组索引:

mask = c > 2
print(mask)
print(c[mask])

输出:

[[False False]
 [ True  True]
 [ True  True]]
[3 4 5 6]

请注意,mask 数组包含与 c 数组相同的形状,并且每个元素都是一个布尔值,指示该元素是否大于 2。我们将 mask 布尔数组作为索引传递给 c 数组,从而获取符合条件的元素的值。

总结

在本文中,我们介绍了如何在 NumPy 中获取指定位置的值。我们探讨了使用索引、整数数组索引和布尔数组索引三种方法。这些方法为 NumPy 数组的操作提供了很多灵活性和功能。