Python NumPy教程之索引详解
索引
在 NumPy 数组中,索引可以应用于数组的每个维度。这个概念可能比在 Python 中使用列表以及其他序列容器的索引稍微复杂一些,但它在 NumPy 中同样有效。了解如何使用索引对于输入数组进行修改很关键。这里是一些基本的索引示例:
基本索引
创建一个 3 x 4 的数组:
import numpy as np
a = np.array([[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]])
我们可以简单的把索引提取出来:
print(a[2, 3]) # 输出 11
当您在切片 Numpy 数组时,记住它总是返回源的子集:
print(a[:2, :2])
# 打印输出:
# [[0 1]
# [4 5]]
整数数组索引
整数索引意味着你以一个指示需要哪些元素的整数列表进行索引。 把负数当作索引看待会从数组的末尾开始计算:
import numpy as np
a = np.array([[0, 1],
[2, 3],
[4, 5]])
print(a[[0, 1, 2], [0, 1, 0]])
# 打印输出:
# [0 3 4]
布尔索引
我们可以使用一个布尔数组来进行索引数组。 结果将是与布尔数组形状相同的数组,而取值则为 True 对应的原数组中的值。这种索引方式非常非常强大。这里是一个示例:
import numpy as np
a = np.array([[0, 1],
[2, 3],
[4, 5]])
bool_idx = (a > 2)
print(bool_idx)
# 输出 True/False 数组,表示哪些元素大于 2:
# [[False False]
# [False True]
# [ True True]]
print(a[bool_idx])
# 输出大于 2 的所有元素
# [3, 4, 5]
示例
示例 1:获取数组形状
import numpy as np
a = np.array([[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]])
print("数组形状:", a.shape)
在这个例子中,我们定义了一个 3 x 4 的数组,并使用 Numpy 提供的函数 shape
获取数组的形状,即 (3, 4)。
示例 2:矩阵运算
import numpy as np
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, 8]])
print("矩阵相乘:", np.dot(x, y))
在这个例子中,我们定义了两个 2 x 2 的矩阵 x
和 y
,并使用 dot
函数计算它们的矩阵乘积。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python NumPy教程之索引详解 - Python技术站