NumPy 高级索引
NumPy 是 Python 中用于科学计算的核心库之一,它提供了一个强大的N维数组对象和许多用于操作这些数组的函数。在 NumPy 中,除了基本的索引和切片操作外,还提供了高级索引功能,这使得您可以以更加灵活和高效的方式访问和操作数组中的数据。本文将详细介绍 NumPy 的高级索引功能,包括整数索引、布尔索引以及使用 np.newaxis
和 np.expand_dims
增加数组维度的方法。
1. 整数索引
整数索引,也称为花式索引(Fancy Indexing),允许您使用整数数组来索引数组。这种索引方式可以用于选取数组中的任意元素,并按照指定的顺序返回它们。
1.1 一维数组的花式索引
对于一维数组,您可以使用一个整数数组来索引它,这将返回一个新的一维数组,其中的元素是按照索引数组中的顺序从原数组中选取的。
import numpy as np
a = np.array([1, 2, 3, 4, 5])
idx = np.array([0, 2, 4])
result = a[idx]
print(result) # 输出: [1 3 5]
1.2 多维数组的花式索引
对于多维数组,您可以使用多个整数数组来索引它,这将返回一个新的一维数组,其中的元素是按照索引数组中的顺序从原数组中选取的。
a = np.array([[1, 2], [3, 4], [5, 6]])
idx = np.array([0, 2])
idy = np.array([0, 1])
result = a[idx, idy]