以下内容是对许向武老师《python高手修炼之道》的总结和回顾。仅作学习交流,如有侵权,立即撤销。
一.NumPy概览
- 介绍
- 快!NumPy对于数组的操作速度不受Python解释器的限制。
- 快!当系统有多个CPU时,NumPy可以自动进行并行计算。
- 多个子模块
- random(随机抽样子模块)、linalg(线性代数子模块)、fft(傅里叶变换子模块)
- ctypeslib、emath、testing、matlib、dual、distutils
- 列表VS数组
- 数组元素必须具有相同的数据类型
- 数组一旦创建,其元素数量就不能再改变了。
- 数组的数据类型
主要有整型(integer)、浮点型(float)、布尔型(bool)、和复数型(complex),每一种数据类型根据占用内存的字节数又分为多个不同的子类型,具体的数据类型,整型(np.int8 ; np.int16,32,64)无符号整型(np.uint8,16,32,64),浮点型(np.float16,32,64),布尔型(np.bool),复数型(np.complex64,128) - 数组的属性
数组的属性较多,但只需记住dtype(数组的数据类型)和shape(数组的结构,也可以理解为数组的形状)就差不多了。 - 数组的方法
数组的方法有很多,现在只需要记住ndarry.astype()和ndarry.reshape()就行了。一个用于改变元素数据类型、一个用于改变数组结构。 - 维、秩、轴
越是新出现的维度标号越低。
- 广播和矢量化
借用MATLAB编程中的术语“数组化编程”,即尽可能的使用数组运算代替循环结构以达到简化和提速的目的。
以下内容,相比整理知识点,实在不如在jupyter notebook中跑一遍了。