Python Numpy 教程:从基础到进阶应用
需积分: 32 199 浏览量
更新于2024-07-18
1
收藏 13.7MB DOCX 举报
"使用python Numpy"
Numpy是Python中用于科学计算的核心库,它提供了强大的多维数组对象和矩阵运算功能。Numpy是Anaconda发行版自带的库,因此在安装Anaconda后,无需额外安装即可使用。
1. **简介**
Numpy库的核心是`ndarray`对象,它是一种高效的数据结构,可以存储同类型的多维数组。Numpy提供了一系列数学函数,用于处理这些数组,大大提高了数值计算的效率。
2. **效率与内存管理**
在Python中,使用列表进行大规模计算可能效率较低。Numpy通过内部优化实现了高效的内存管理和计算速度,如`method1`、`method2`和`method3`的对比所示。`method3`使用numpy的`arange`和`**`操作,其执行时间和内存占用远低于使用纯Python列表。
3. **创建ndarray对象**
- **ndarray的属性**:包括`shape`(数组的形状)、`dtype`(数据类型)、`size`(元素总数)等。
- **zeros/ones/eye/full**:这些函数分别用于创建全0、全1和单位矩阵的数组,`full`可以填充指定值。
4. **numpy数据类型**
Numpy支持多种内置数据类型,如整型(int)、浮点型(float)、复数(complex)等,并且有专门的类型如`bool_`、`object_`和`string_`。
5. **numpy字符编码**
Numpy数组可以存储字符串,但需要注意字符串的编码方式,以确保正确处理不同语言和特殊字符。
6. **自定义数据类型**
用户可以通过`dtype`结构创建自定义数据类型,以满足特定需求。
7. **数组的索引和切片**
Numpy数组支持类似Python列表的索引和切片操作,但可以进行多维索引和高级索引。
8. **改变数组维度**
- `reshape()`:创建一个新的数组,形状改变,但不改变原始数组。
- `shape`属性:直接修改数组的形状,会改变原始数组。
- `resize()`:直接改变数组大小,同样会改变原始数组。
- 展平数组:使用`ravel()`或`flatten()`将多维数组转换为一维数组。
- 矩阵转置:使用`.T`属性快速实现数组的转置。
9. **数组的组合**
可以通过`vstack`、`hstack`、`column_stack`、`stack`等函数组合数组,创建新的多维数组。
10. **基于numpy的统计分析应用**
- 保存数据到文件:可以使用`numpy.save`和`numpy.savetxt`将数组数据写入文件。
- 读取csv文件:借助`numpy.loadtxt`或`numpy.genfromtxt`读取CSV文件中的数据。
- 数组的加权平均数:`np.average(arr, weights=weight_arr)`。
- 算术平均数:`mean(arr)`。
- 最大值、最小值:`max(arr)`和`min(arr)`。
- 极差:`ptp(arr)`。
- 中位数:`median(arr)`。
- 方差:`var(arr)`。
- 对数:`log(arr)`。
- 简单收益率和对数收益率:`np.diff(close)/close[:-1]`和`np.log(close[1:]/close[:-1])`。
- 标准差:`std(arr)`。
- `where`函数:返回匹配条件的下标。
- 平方根与波动率:`sqrt(arr)`与年、月波动率计算。
- 数组的阶次运算:例如指数运算`arr ** n`。
Numpy的强大在于其高效的数据处理能力和丰富的数学函数,使得在处理大量数据时,能够实现快速的计算和便捷的操作。在金融分析、机器学习、物理模拟等领域,Numpy是不可或缺的工具。
2019-01-30 上传
2019-09-17 上传
2021-05-30 上传
2023-06-11 上传
2016-01-26 上传
2017-12-04 上传
2022-08-19 上传
qq_20936501
- 粉丝: 9
- 资源: 18
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载