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/ ...
随机推荐
- Rails render collection 的魔法
都知道的, 在 Rails 的 View 里边渲染集合的时候, 会用到 render 方法参数的 collection 选项 1 <%= render partial: "produc ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:将MNIST手写图片数据写入TFRecord文件
import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...
- 二分查找(python)
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/4/29 9:11 # @Author : Jackendoff # @Sit ...
- Django2.0——django-filter: TypeError at *** __init__() got an unexpected keyword argument 'name'
在使用 Django2.0 版本的 Django Rest Framwork 时,Django DeBug 报错 django-filter: TypeError at *** __init__() ...
- lnmp环境搭建:Centos7 + Nginx1.12.2 + Mysql-5.6.38 + PHP7.2.0
https://blog.csdn.net/ty_hf/article/details/50622888
- 关于css中hover下拉框的一个bug
写hover下拉框的时候会遇到一个奇怪的bug,就是下拉框下来的时候会被所在位置的div遮挡,哪怕下拉框使用的absolute,也会被遮挡. 如图: 这个语言选择的下拉框会被下面的div挡住(截图是已 ...
- 一个http的Post请求问题,unable to resolve host <我的域名>:no address associated with hostnam
原因:你应用中写入的测试服务器地址baseURL解析不了,服务器端设置的原因: 解决:找服务端修改设置,或者Android应用中把测试地址改为上线服务器地址.
- RHEL7在线安装rvm(ruby管理包)
ttp://blog.csdn.net/lixwjava/article/details/50408070 安装curl sudo yum install curl 然后在在终端中输入命令 curl ...
- 算法笔记4.3递归 问题 B: 数列
题目描述 编写一个求斐波那契数列的递归函数,输入n 值,使用该递归函数,输出如下图形(参见样例). 输入 输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10. 输出 对应每个样例输出要求的 ...
- 常用JS图片滚动(无缝、平滑、上下左右滚动)
常用JS图片滚动(无缝.平滑.上下左右滚动)代码大全 <head><-----></head><body> <!--向下滚动代码开始-->& ...