头歌numpy数组的高级操作
时间: 2025-04-04 12:11:29 浏览: 24
### Numpy 数组高级操作教程
#### 花式索引与布尔索引
Numpy 提供了多种高级索引方式来访问和修改数组中的元素。其中,花式索引允许通过整数列表或数组进行索引来获取子集[^2]。而布尔索引则可以通过条件表达式的真值结果筛选出满足特定条件的元素。
以下是关于如何利用这些技术的一个具体例子:
```python
import numpy as np
def filter_students(num, input_data):
data_array = np.array(input_data) # 实例化输入数据为 NumPy 数组
filtered_result = data_array[data_array > num] # 布尔索引应用:仅保留大于 `num` 的元素
return filtered_result.tolist() # 返回过滤后的结果作为标准 Python 列表
```
上述代码展示了如何使用布尔索引来提取原始数组中符合条件的部分。这里的关键在于 `data_array > num` 这一语句会生成一个布尔掩码,该掩码随后被用来选取原数组对应位置上的元素。
#### 文件存储与加载
除了内存中的高效操作外,NumPy 还支持便捷的数据持久化功能。可以借助 `np.save()` 和 `np.load()` 方法保存并恢复 ndarray 对象到磁盘上[^3]。这使得大型数据集能够轻松地在不同程序间共享或者长期储存起来备用。
例如下面这段简单的脚本演示了这一过程:
```python
# 创建测试用随机矩阵
test_matrix = np.random.rand(5, 5)
# 存储至本地 .npy 文件
np.save('saved_test_matrix.npy', test_matrix)
# 加载已保存的内容回到新的变量名下
loaded_matrix = np.load('saved_test_matrix.npy')
print(np.allclose(test_matrix, loaded_matrix)) # 输出 True 表明两者完全一致
```
#### 函数评估工具——linspace()
当需要在一个范围内均匀采样大量点位时,`np.linspace(start, stop, num)` 是非常实用的选择之一[^4]。此函数返回指定数量等间距分布于起始端点之间的样本集合,在绘制连续型数学曲线图等方面尤为常见。
示例片段如下所示:
```python
from math import pi
x_values = np.linspace(0, 2 * pi, 100)
y_sine_wave = np.sin(x_values)
```
以上就是有关 NumPy 中一些较为复杂的特性介绍及其实际应用场景的例子说明。
阅读全文
相关推荐


















