【1】为什么要用numpy
低效的python for 循环
eg: 求100万个数的倒数
%timeit: python 中 统计时间的魔术方法(多次运行取平均值)
实现相同的运算,numpy 的运行速度是python 的25 倍,产生了质的飞跃
【2】numpy 为什么如此高效?
numpy 是由C 语言编写的,对代码进行整体编译,速度更快
numpy 数组内的数据类型必须是统一的,而python 列表支持任意类型的数据填充
C语言可以实现多线程并行,python 语言执行时有线程锁
说明:
多线程,是指从软件或硬件上实现多个线程并发执行的技术,有硬件的支持,计算机能够在同一时间执行多个线程,进而提升整体处理性能,
【3】 什么时候使用numpy?
在数据处理的时候,实现一些向量化、矩阵化操作的时候,要优先考虑用numpy
eg: 两个向量的点乘
矩阵乘法
【4】numpy 数组的创建
4.1从列表开始创建
4.2 设置数组的数据类型
【5】 从头创建数组
5.1 创建长度为5 的数组,值都是0
5.2 创建一个2*4 的浮点型数组,值都为1
5.3 创建一个3*5 的数组,值都为8.8
5.4 创建一个3*3 的单位矩阵
5.5 创建一个线性序列数组,从1开始,到15结束 ,步长为2
5.6 创建一个4个元素的数组,这四个数均匀的分配到0~1
5.7 创建一个10 个元素的数组,形成1~10^9 的等比例数列
5.8 创建一个3*3 的,在0~1 之间均匀分布的随机数构成的数组
5.9 创建一个3*3 ,均值为0 ,标准差为1的正态分布随机 数构成的数组
5.10 创建一个3*3 的,在【0,10 】之间随机整数构成的数组
5.11 随机重排列
5.12 随机采样
按指定形状采样
【6】数组的性质
6.1 数组的属性
6.2 数组的形状shape
6.3 数组的维度 ndim
6.4 数组的大小 size
6.5 数组数据的类型 dtype
【7】 数组的索引
7.1 一维数组的索引
7.2 多维数组的索引 --- 以二维为例
注意: numpy 数组的数据类型是固定的,向一个整型数组插入一个浮点值,浮点值会向下进行取暖
【8】 数组的切片
8.1 一维数组 和列表一样
8.2 多维数组 (以二维为例)
8.3 获取数组的行和列
8.4 切片获取的是视图,而不是副本
说明: 视图元素发生修改,则原数组亦会发生相应的修改
8.5 修改切片的安全方式 :copy
【9】 数组的变形 reshape()
注意:reshape 返回的是视图,而非副本
9.1 一维向量转行向量