NumPy数组操作高级技巧:花式索引、掩码、结构化数组与通用函数
1. 引言
在处理NumPy数组时,我们常常会遇到需要提取特定数据、进行复杂索引操作以及对数组进行变换的情况。本文将深入介绍NumPy中的一些高级技巧,包括花式索引、掩码、结构化数组、通用函数以及其他有价值的函数,帮助你更高效地处理和操作数组。
2. 花式索引
2.1 基本概念
当索引遵循规则的网格模式时,切片是从数组中提取数据的好方法。但如果要提取任意索引,或者索引遵循不规则模式(如斐波那契数列),NumPy数组提供了花式索引来处理这些情况。花式索引是通过整数数组或整数列表进行索引,而不是使用切片或 newaxis 。它具有以下特点:
- 可以提供任意索引。
- 索引可以重复。
- 索引可以无序。
- 索引的形状不需要与数组的形状匹配。
- 索引的维度可以比数组多或少。
- 索引可以与切片无缝结合。
2.2 示例代码
import numpy as np
# 创建数组
a = 2*np.arange(8)**2 + 1
print("原始数组 a:", a)
# 提取第四、最后和第二个索引
print("提取第四、最后和第二个索引:", a[[3, -1, 1]])
# 提取斐波那契数列对应的索引
fib = np.array([0, 1, 1, 2, 3, 5])
print("提取斐波那契数列对应的索引:", a[fib])
# 提取一个 2x2 数组
print("提取一个 2x
超级会员免费看
订阅专栏 解锁全文
79

被折叠的 条评论
为什么被折叠?



