NumPy
NumPy 是数据科学领域的一个强力工具,使得 python 在数学函数的实现和矩阵数组的运算上有着巨大的优势。
学习目标
- 掌握数组常用操作方法
- 掌握矩阵及相关函数的使用
- 掌握随机数函数的使用
- 熟悉其他常用函数
介绍
Numeric Python 的缩写,数值计算库
python 的列表速度慢
numpy 并行计算
强大的多维数组及吹了数组的函数集合 与 C/C++/FORTRRAN等代码整合工具 科学计算常用的线性代数运算、傅里叶变换、随机数模块等
优势
- 减少编程量
- 加运算效率
- C语言实现
- 查找、计算效率高
- 并行计算,避免类型插件
- 减少内存消耗
ndarray 对象
创建数组
特殊数组
numpy.zeros 全0数组 numpy.ones 全1数组 numpy.arrange 等间距数组 numpy.linspace 等间距数组
数据类 型
float float16 complex_ complex64 ...
切片与索引
参数可以为负数
a[列,行]
索引 - a[1] 切片 - a[0:5],左闭又开 步长 - a[0:5:2] slice - slice(start,stop,step) - s = slice(0,5,2)
广播
对于不同形状的数组运算的处理能力, 对不同形状的数组,对较小的数组进行拓展,与交大的数组进行匹配
常用方法
numpy.reshape # 改变数组的形状、维度
numpy.flat # 将数组展开为一维数组
numpy.transpose # 转置,翻转数组
numpy.stack # 链接相同形状数组
numpy.append # 在数组末尾增加元素
numpy.insert # 在指定位置加入元素
numpy.delete # 返回删除后的新数组
矩阵
np.matlib.empty # 返回未初始化的新矩阵 np.matlab.zeros # 返回全0矩阵 np.matlab.ones # 返回全1矩阵 np.matlab.eye # 返回对角矩阵 np.matlab.identity 返回给定大小的单位矩阵 np.matlab.rand # 返回随机数矩阵
转换
节省内存空间,
b = np.mat(a)
复制内存空间
c = np.matrix(a)
运算
矩阵相乘 c = ab d = np.dot(a,b) 元素相乘 c = np.multiply(a,b) d = a2 求逆和转置 c = a.I d = a.T
随机模块及常用方法
np.random.rand # 给定形状的范围在[0,1)随机数 np.random.randn # 正太分布的随机数 np.random.randint # 输出在 [low, high) 范围的随机数 np.random.random([size]) # 范围在 [0,1) 的随机数
分布
beta # 贝塔分布 lognormal # 对数正态分布 normal # 正太分布 poisson # 泊松分布 uniform # 均匀分布
常用函数
算术函数 三角函数 sin/cos/tan/asin/acos/atan 舍入函数 around/floor/ceil 加减乘除 add/subtract/multiply/divide 余数 mod 平方 square/pow/sqrt
统计函数 最大最小值 amin/amax 中位数 median 算术平均 mean 加权平均 average 标准差、方差 std/var