numpy学习总结
Numpy是一个用python实现的科学计算包,主要提供矩阵运算的功能,而矩阵运算在机器学习领域应用非常广泛,Numpy一般与Scrapy、matplotlib一起使用。
Numpy用途
Numpy主要用作高性能计算和数据分析,其操作是围绕ndarray这么一个矩阵元素来进行。在数据分析的应用中,Numpy主要功能体现在:
1.用于数据清理和整理、子集构造和过滤、转换等快速的矢量化数组运算
2.常用的数组算法、如排序、化、集合运算等
3.统计和数据聚合运算
4.异构数据的合并/连接/转换
Numpy的安装
如果你环境没问题的话,pip install numpy即可,如果遇到问题,就到网上去下载wheel,用pip install .whl的方法进行安装。这里就不赘述了。
Numpy常用方法总结
创建矩阵

我们习惯把Numpy简写作np
对于多维对象,以此类推即可
获取矩阵行数列数(二维情况)
针对上面的代码,只需print(a2.shape),就会打印出一个元组(2,5)分别是2和5.
矩阵的截取
使用索引切片运算
我们以一个索引切片对二维数组进行操作的实际情况为例
在上面的例子中,切片运算是以[start:end]形式,也就是指定起始索引(包括)与结尾索引(不包括)来切出子字符串。
举个例子,在a[0:1]中,就是[start:end]中start等于0,end等于1的情况下,在这种情况下,就会显示数组a的第0行(包括)到第1行(不包括)的数据。先来就是[[1,2,3,4,5]]
再来看一个例子,在a[1,2:5]中,逗号前的1代表第一行(实际上是第二行,但是我习惯把真正的第一行称作第0行来对应它的数字),逗号后的2:5,就是第二列(包括)到第五列(不包括)的数字。还是那个问题,因为我习惯上把第一行称作第0行来对应实际上的第一行,因此这里的实际上是第三列(包括)到第六列(不包括),这个得看你们各自的习惯,只要理解了都是可以的。
切片索引的另一个形式就是[start:end:step],也就是切出起始索引与结尾索引(不包括)之间每次间隔step元素的内容(也就是省略step时,就相当于使用1).还是来看一个例子
a[1,2:5:2]的意思就是获取第一行的第二列(包括)到第五列(不包括)的数值,但是其中间隔为2,就是每次间隔为2后获取一下值。它的输出结果显然就是[8,10]了。
实际上了解索引意义的开发人员都知道索引其实就是相对第一个元素的便宜值。在python中,正索引就是指正偏移值,负索引就是负偏移值,-1索引就是倒数第一个元素,-2索引就是倒数第二个元素。
我们再来看一个例子
其中逗号前的1仍是指第一行,后面的依旧符合[start:end]的规则,从第四列(包括)到第二行(不包括),每次都相对于第一个元素偏移-1个单位,显然值就是[10,9]
按条件截取
按条件截取其实是在[]中传入自身的布尔语句
我们先来看一个最简单的例子大专栏 numpy学习总结xjh.cn/http://zzulixjh.cn//2018/07/16/numpy/e.png"/>
那么它就会输出[7,8,9,10]
再来看一个满足一定条件的元素变成特定的值的例子
其实不二语句首先会生成一个布尔矩阵,将布尔矩阵传入[]实现截取
我们可以打印一下 a>6
矩阵的合并

其中hstack是将矩阵横向合并,vstack是将矩阵纵向合并
一些创建矩阵的函数
arange
我们可以通过arange来创建一些有规律的常用的矩阵
例如 a = np.arange(10)会创建一个从0开始到10(不包括10),步长为1的矩阵
[0,1,2,3,4,5,6,7,8,9]
linspace
linspace()用于创建指定数量等间隔的序列,实际产生一个等差数列。
例如 np.linspace(0,10,7)就是产生首位是0,末尾是10,含7个数的等差数列
logspace
logspace用于产生等比数列
例如np.logspace(0,4,5)就是产生首位是10的0次方,末尾是10的四次方的含5个数的等比数列。
矩阵的运算
常用矩阵函数
np.sin(a) 对矩阵a中每个元素取正弦,sin(x)
np.cos(a) 对矩阵a中每个元素取余弦,cos(x)
np.tan(a) 对矩阵a中每个元素取正切,tan(x)
np.arcsin(a) 对矩阵a中每个元素取反正弦,arcsin(x)
np.arccos(a) 对矩阵a中每个元素取反余弦,arccos(x)
np.arctan(a) 对矩阵a中每个元素取反正切,arctan(x)
np.exp(a) 对矩阵a中每个元素取指数函数,ex
np.sqrt(a) 对矩阵a中每个元素开根号√x
在使用这些矩阵时,只需将要进行运算的矩阵放入到()内即可,比如我要对矩阵a的元素进行sin()操作,只需np.sin(a)
矩阵乘法
矩阵乘法必须满足矩阵乘法的条件,即第一个矩阵的列数等于第二个矩阵的行数。
矩阵乘法的函数位dot

矩阵转置
如果需要将矩阵a进行转置,只需a.T即可

矩阵信息的获取
最大值最小值
获得矩阵中元素最大最小值的函数分别是max和min,可以获得整个矩阵、行或列的最大值最小值。对于矩阵a:
a.max() 整个矩阵的最大值
a.min() 整个矩阵的最小值
a.max(axis=0)获取每一行上的最大值
a.min(axis=0)获取每一行上的最小值
a.max(axis=1)获取每一列上的最大值
a.min(axis=1)获取每一列上的最小值
平均值
平均值的函数为mean(),其余方法和最大最小值差不多。
方差
方差的函数为var(),var()相当于mean(abs(x-x.mean())**2)
针对行列的方差参考最大值最小值
标准差
标准差的函数为std(),相当于sqrt(x.var())
求和
矩阵求和的函数是sum(),可以对行、列、整个矩阵求和
累计和
某位置累计和指的是该位置之前(包括该位置)所有元素的和
例如序列[1,2,3,4,5],其累计和为[1,3,6,19,15]
numpy学习总结的更多相关文章
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- NumPy学习笔记 一
NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...
- NumPy学习(让数据处理变简单)
NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...
- numpy 学习笔记
numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...
- numpy 学习总结
numpy 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 #生成数组/使 ...
- (转)Python数据分析之numpy学习
原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...
- Numpy学习1
NumPy学习(1) 参考资料: http://www.cnblogs.com/zhanghaohong/p/4854858.html http://linusp.github.io/2016/02/ ...
随机推荐
- POJ-1679 The Unique MST(次小生成树、判断最小生成树是否唯一)
http://poj.org/problem?id=1679 Description Given a connected undirected graph, tell if its minimum s ...
- 4. 监控利器nagios手把手企业级实战第三部
1.nagios图形监控显示和管理服务器 虽然能显示,能报警.但是我们企业工作中需要一个历史趋势图. nagios只开放核心,插件是单独的形式,图像也一样,是插件或者整合的方式.所以可能看起来很多,这 ...
- Java统计内存
在目标代码前放置 Runtime r = Runtime.getRuntime(); r.gc(); long startMem = r.freeMemory(); // 开始时的剩余内存 目标代码执 ...
- pyCharm专业版最新2018激活码激活
说明:本人亲测有用,对Window.Linux.Mac都稳定有效. 缺点:需要修改hosts文件 步骤: 由于管理权限问题,大部分电脑都不能直接修改hosts文件,所以我们可以先将hosts文件复制到 ...
- jmeter接口自动化测试,数据驱动玩法
总体思路:excel管理测试数据,判断不同的接口请求方法,取登陆token值为全局变量方便后面接口调用,预期结果断言: 1.设置获取excel数据源: 2.设置取token以及设置为全局变量: 3.i ...
- EXAM-2018-08-21
EXAM-2018-08-21 自己真的是菜的恐怖 D:Fence Building 欧拉公式:V-E+F=2 在平面中:V为顶点个数,E为边数,F为区域数 在简单几何体中:V为顶点个数,E为边数,F ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块角色类(Sprite)移动与碰撞
角色类(Sprite) Py game 游戏中有许多组件会重复用到,比如射击宇宙飞船的游戏中,外星宇宙 飞船可能多达数十艘 , 通过创建“角色类”,可以生成多个相同的对象. Py game 角色类是游 ...
- Java类的三大特征
1.三大特征是封装.继承和多态 2.封装 特点: 需要修改属性的访问控制符为private: 创建getter/setter方法用于属性的读写: 在getter/setter方法中加入属性控制语句,用 ...
- POJ3276 Face The Right Way 开关问题
①每个K从最左边进行考虑 ②f[i]=[i,i+k-1]是否进行反转:1代表是,0代表否 ③∑ (i)(i=i+1-K+1) f[j]=∑ (i-1)(i=i-K+1) f[j]+f[i]-f[i-K ...
- 【SpringCloud】Eureka入门与原理
为了开发效率高效和业务逻辑清晰,越来越多的项目采用分布式系统.分布式最重要的就是注册中心了.Eureka是SpringCloud原生提供的注册中心,来look一波吧. 超光速入门 服务端 引入依赖: ...