Python与机器学习(一) NumPy与SciPy库
来源:互联网 发布:iphone7导出照片到mac 编辑:程序博客网 时间:2024/06/04 18:08
简介
- Python在科学计算方面提供了完备的程序扩展库,包括机器学习、数学分析、可视化库、GPU并行库等。
- Anaconda使得程序扩展库的管理非常方便,这个Python发行版本除了附带了ipython编程环境,也包含了200多个工具库:
- NumPy库,一个提供多维数组及矩阵运算功能的基础类库;
- SciPy库,在NumPy基础上添加众多科学计算所需的各种工具,它的核心计算部分是一些久经考验的Fortran数值计算库;
- Pandas库,在NumPy基础上提供类似电子表格的数据结构DataFrame,并以此为核心提供大量的数据的输入输出、清洗、处理和分析函数;
- Matplotlib库,一个简单且有效的数值可视化绘图类库
- Scikit-Learn库,一个专门面向机器学习的算法库;
- TensorFlow,深度学习算法库
NumPy库
主要用于处理n维数组对象的Python工具包。
创建数组
- np.arange([start, ]stop, [step ]) 类似Python的range函数,注意不包含结尾
- linspace(start, stop, num=50, endpoint=True)函数创建等差数列。可以通过endpoint关键字指定是否包括终值,缺省包括终值
- logspace()函数和linspace()函数类似,不过它创建等比数列
- zeros(shape), ones(shape), full(shape, fill_value) 创建给定形状的数组
- eye(N, M=None) 创建对角线元素为1,其他元素为0的n*m二维数组
- rand(N, M) 产生0到1之间的随机浮点数,它的所有参数用于指定所产生的数组的形状
- randn(N, M) 产生标准正态分布的随机数,参数含义与rand()相同
- randint(start, stop, shape) 产生指定范围的随机整数,包括起始值,但不包括终值
存取
- 保存成专有格式
np.save("arr.npy", arr) #以arr.npy的文件名保存数组arrs = np.load("arr.npy") #读取arr.npy文件并返回给snp.savez("save.npz", a, b, k_c=c) #保存多个数组
- 保存到txt或csv
>>>arr = np.genfromtxt("myfile.csv", delimiter = ',', dtype = "string") #从myfile.csv中导入数据,以逗号为间隔符,类型为string型>>>np.savetxt("myarray.txt", arr, delimiter = ' ') #将arr保存到myarray.txt文件,以空格为间隔符
属性和方法
- shape属性与reshape()方法
- dtype属性与astype()方法
- size属性:元素的个数
- ndim属性:维数
切片
重要:切片索引与Python列表的切片索引不同,通过切片获取的新的数组是原数组的一个视图,它与原数组共享同一块数据存储空间,切片的修改会反映到原数组上。
- 标准切片 a[1], a[1:10:2]
- 多维切片 b[2::2,::2] 表示从第2行开始以步长2开始切片,读取从第0列开始步长为2的所有列的元素
- 布尔切片 a[a < 3] 表示取得小于3的所有元素
变形
- np.ravel(a) 转成行向量(降为一维)
- a.T 转置
- a.resize(N, M) 改变形状。和reshape不同的是,他会改变自身
- np.vstack((a, b)) 竖直拼接两个数组
- np.hstack((c, d)) 水平拼接两个数组
- np.vsplit(a, 3) 竖直切3刀
- np.hsplit(b, 3) 水平切3刀
运算
- 算术运算
- 二目运算 np.add(a, b) subtract multiply power remainder
- 单目运算 negative floor abs sqrt
- 比较运算 np.array([1, 2, 3]) < np.array([3, 2, 1])
- 统计运算 np.sum(a, axis=None) 默认对全部元素求和,axis=0对 第0维元素(列)求和,返回一行
- 矩阵乘法 先转换为matrix对象才能做矩阵运算。np.matrix(a) * np.matrix(b)
例子
e.g. 使用如下公式计算π:
π = 4/1 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 + 4/13 - …
示例代码:
import numpy as npn = 100000np.sum(4.0 / np.r_[1:n:4, -3:-n:-4])>> 3141592653589833
SciPy库
线性代数 linalg模块
- linalg.det()函数计算方阵的行列式
- linalg.inv()函数计算方阵的逆
- linalg.norm()函数计算方阵的模
- 特征向量 evalues, evectors = linalg.eig(A)
拟合与求解 optimize模块
- optimize.curve_fit() 使用最小二乘法实现线性拟合
- optimize.leastsq() 最小二乘拟合
- fmin() 函数极值求解
- fsolve() 非线性方程组求解
插值interpolate模块
插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。与拟合不同的是,要求曲线通过所有的已知数据。
- interp1d(x, y, kind=’linear’, …) 一维插值
- UnivariateSpline() 噪声数据插值
- griddata() 多维插值,主要用于重构图片
统计stats模块
- 连续概率分布
- 离散概率分布
- 描述与检验函数
参考:python机器学习
阅读全文
0 0
- Python与机器学习(一) NumPy与SciPy库
- Python Scipy&NUmpy Tutorials:Scipy与Matplot
- python+opencv学习笔记(一)python+numpy+scipy+opencv+contrib的安装与配置
- python及常用库numpy、scipy、matplotlib安装与卸载
- Python数据分析与机器学习-Numpy
- numpy与scipy安装
- [机器学习]Python中Numpy,Pandas,Matplotlib,Scipy,Seaborn介绍
- Windows中python机器学习numpy,scipy,matplotlib的安装
- 机器学习相关库在Python中的配置:numpy+matplotlib+scipy+dateutil+pyparsing
- windows下Python机器学习依赖库安装——numpy、scipy、sklearn、xgboost、theano等
- NumPy、Pandas、Matplotlib、 scipy机器学习库安装
- python package numpy和scipy 的安装与配置
- python package numpy和scipy 的安装与配置
- Python中的Numpy、SciPy、MatPlotLib安装与配置
- Python中的Numpy、SciPy、MatPlotLib安装与配置
- Python中的Numpy、SciPy、MatPlotLib安装与配置
- Python中Numpy、SciPy、MatPlotLib安装与配置
- Python中的Numpy、SciPy、MatPlotLib安装与配置
- c作业
- 操作系统虚拟存储器的一道经典练习题 int a[100][100]
- 选择客栈
- BZOJ 2287: 【POJ Challenge】消失之物
- 在Javascript中 声明时用"var"与不用"var"的区别
- Python与机器学习(一) NumPy与SciPy库
- 目标检测R-CNN
- jenkins安装部署全过程
- 《Effective C++》条款05
- [P1311][NOIP2011]选择客栈
- 如何爬取B站弹幕
- php ——mkdir
- 1304: [CQOI2009]叶子的染色
- CSS中position属性介绍(新增sticky)