NumPy基本方法

一、数组方法

创建数组:arange()创建一维数组;array()创建一维或多维数组,其参数是类似于数组的对象,如列表等

读取数组元素:如a[0],a[0,0]

数组变形:如b=a.reshape(2,3,4)将得到原数组变为2*3*4的三维数组后的数组;或是a.shape=(2,3,4)或a.resize(2,3,4)直接改变数组a的形状

数组组合:水平组合hstack((a,b))或concatenate((a,b),axis=1);垂直组合vstack((a,b))或concatenate((a,b),axis=0);深度组合dstack((a,b))

数组分割(与数组组合相反):分别有hsplit,vsplit,dsplit,split(split与concatenate相对应)

将np数组变为py列表:a.tolist()

数组排序(小到大):列排列np.msort(a),行排列np.sort(a),np.argsort(a)排序后返回下标

复数排序:np.sort_complex(a)按先实部后虚部排序

数组的插入:np.searchsorted(a,b)将b插入原有序数组a,并返回插入元素的索引值

类型转换:如a.astype(int),np的数据类型比py丰富,且每种类型都有转换方法

条件查找,返回满足条件的数组元素的索引值:np.where(条件)

条件查找,返回下标:np.argwhere(条件)

条件查找,返回满足条件的数组元素:np.extract([条件],a)

根据b中元素作为索引,查找a中对应元素:np.take(a,b)一维

数组中最小最大元素的索引:np.argmin(a),np.argmax(a)

多个数组的对应位置上元素大小的比较:np.maximum(a,b,c,…..)返回每个索引位置上的最大值,np.minimum(…….)相反

将a中元素都置为b:a.fill(b)

每个数组元素的指数:np.exp(a)

生成等差行向量:如np.linspace(1,6,10)则得到1到6之间的均匀分布,总共返回10个数

求余:np.mod(a,n)相当于a%n,np.fmod(a,n)仍为求余且余数的正负由a决定

计算平均值:np.mean(a)

计算加权平均值:np.average(a,b),其中b是权重

计算数组的极差:np.pth(a)=max(a)-min(a)

计算方差(总体方差):np.var(a)

标准差:np.std(a)

算术平方根,a为浮点数类型:np.sqrt(a)

对数:np.log(a)

点积(计算两个数组的线性组合):np.dot(a,b),即得到a*b(一维上是对应元素相乘,多维可将a*b视为矩阵乘法

修剪数组,将数组中小于x的数均换为x,大于y的数均换为y:a.clip(x,y)

所有数组元素乘积:a.prod()

数组元素的累积乘积:a.cumprod()

数组元素的符号:np.sign(a),返回数组中各元素的正负符号,用1和-1表示

数组元素分类:np.piecewise(a,[条件],[返回值]),分段给定取值,根据判断条件给元素分类,并返回设定的返回值。

判断两数组是否相等: np.array_equal(a,b)

判断数组元素是否为实数: np.isreal(a)

去除数组中首尾为0的元素:np.trim_zeros(a)

对浮点数取整,但不改变浮点数类型:np.rint(a)

二、数组属性

1.获取数组每一维度的大小:a.shape

2.获取数组维度:a.ndim

3.元素个数:a.size

4.数组元素在内存中的字节数:a.itemsize

5.数组字节数:a.nbytes==a.size*a.itemsize

6.数组元素覆盖:a.flat=1,则a中数组元素都被1覆盖

7.数组转置:a.T

三、矩阵方法

创建矩阵:np.mat(‘…’)通过字符串格式创建,np.mat(a)通过数组创建,也可用matrix或bmat函数创建

创建复合矩阵:np.bmat(‘A B’,’AB’),用A和B创建复合矩阵AB(字符串格式)

创建n*n维单位矩阵:np.eye(n)

矩阵的转置:A.T

矩阵的逆矩阵:A.I

计算协方差矩阵:np.cov(x),np.cov(x,y)

计算矩阵的迹(对角线元素和):a.trace()

相关系数:np.corrcoef(x,y)

给出对角线元素:a.diagonal()

四、多项式

多项式拟合:poly= np.polyfit(x,a,n),拟合点集a得到n级多项式,其中x为横轴长度,返回多项式的系数

多项式求导函数:np.polyder(poly),返回导函数的系数

得到多项式的n阶导函数:多项式.deriv(m = n)

多项式求根:np.roots(poly)

多项式在某点上的值:np.polyval(poly,x[n]),返回poly多项式在横轴点上x[n]上的值

两个多项式做差运算: np.polysub(a,b)

四、线性代数

估计线性模型中的系数:a=np.linalg.lstsq(x,b),有b=a*x

求方阵的逆矩阵:np.linalg.inv(A)

求广义逆矩阵:np.linalg.pinv(A)

求矩阵的行列式:np.linalg.det(A)

解形如AX=b的线性方程组:np.linalg.solve(A,b)

求矩阵的特征值:np.linalg.eigvals(A)

求特征值和特征向量:np.linalg.eig(A)

Svd分解:np.linalg.svd(A)

五、概率分布

产生二项分布的随机数:np.random.binomial(n,p,size=…),其中n,p,size分别是每轮试验次数、概率、轮数

产生超几何分布随机数:np.random.hypergeometric(n1,n2,n,size=…),其中参数意义分别是物件1总量、物件2总量、每次采样数、试验次数

产生N个正态分布的随机数:np.random.normal(均值,标准差,N)

产生N个对数正态分布的随机数:np.random.lognormal(mean,sigma,N)

Matpoltlib简单绘图方法

引入简单绘图的包import matplotlib.pyplot as plt,最后用plt.show()显示图像

基本画图方法:plt.plot(x,y),plt.xlabel(‘x’),plt.ylabel(‘y’),plt.title(‘…’)

子图:plt.subplot(abc),其中abc分别表示子图行数、列数、序号

创建绘图组件的顶层容器:fig = plt.figure()

添加子图:ax = fig.add_subplot(abc)

设置横轴上的主定位器:ax.xaxis.set_major_locator(…)

绘制方图:plt.hist(a,b),a为长方形的左横坐标值,b为柱高

绘制散点图:plt.scatter(x,y,c = ‘..’,s = ..),c表示颜色,s表示大小

添加网格线:plt.grid(True)

添加注释:如ax.annotate('x', xy=xpoint, textcoords='offsetpoints',xytext=(-50, 30), arrowprops=dict(arrowstyle="->"))

增加图例:如plt.legend(loc='best', fancybox=True)

对坐标取对数:横坐标plt.semilogx(),纵坐标plt.semilogy(),横纵同时plt.loglog()

numpy基本方法总结的更多相关文章

  1. 备忘录 - numpy基本方法总结

    一.数组方法 创建数组:arange()创建一维数组:array()创建一维或多维数组,其参数是类似于数组的对象,如列表等 反过来转换则可以使用numpy.ndarray.tolist()函数,如a. ...

  2. Python数据分析Numpy库方法简介(一)

    Numpy功能简介: 1.官网:www.numpy.org 2.特点:(1)高效的多维矩阵/数组; (2);复杂的广播功能 (3):有大量的内置数学统计函数 矩阵(多维数组): 一维数组:  ([ 值 ...

  3. numpy基本方法

    在学习python的时候常常需要numpy这个库,每次都是用一个查一个,这个,终于见到一个完整的总结了http://blog.csdn.net/blog_empire/article/details/ ...

  4. numpy基本方法总结 --good

    https://www.cnblogs.com/xinchrome/p/5043480.html 一.数组方法 创建数组:arange()创建一维数组:array()创建一维或多维数组,其参数是类似于 ...

  5. Numpy使用方法

    地址:http://www.cnblogs.com/xinchrome/p/5043480.html 另附Stanford的Numpy Tutorial地址:http://cs231n.github. ...

  6. Python数据分析Numpy库方法简介(四)

    Numpy的相关概念2 副本和视图 副本:复制 三种情况属于浅copy 赋值运算 切片 视图:链接,操作数组是,返回的不是副本就是视图 c =a.view().创建a的视图/影子和切片一样都是浅cop ...

  7. Python数据分析Numpy库方法简介(三)

    补充: np.ceil()向上取整 3.1向上取整是4 np.floor()向下取整 数组名.resize((m,n)) 重置行列 基础操作 np.random.randn()符合正态分布(钟行/高斯 ...

  8. Python数据分析Numpy库方法简介(二)

    数据分析图片保存:vg 1.保存图片:plt.savefig(path) 2.图片格式:jpg,png,svg(建议使用,不失真) 3.数据存储格式: excle,csv csv介绍 csv就是用逗号 ...

  9. numpy.base_repr 方法解释

    首先看官方文档: numpy.base_repr(number, base=2, padding=0) 将给定的 number 值,换算成给定的 base 进制(默认 2 进制)的值,以字符串的形式返 ...

随机推荐

  1. Codeforces 845G Shortest Path Problem?

    http://codeforces.com/problemset/problem/845/G 从顶点1dfs全图,遇到环则增加一种备选方案,环上的环不需要走到前一个环上作为条件,因为走完第二个环可以从 ...

  2. 《浏览器工作原理与实践》<06>渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

    在上篇文章中,我们介绍了渲染流水线中的 DOM 生成.样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段. 这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染 ...

  3. 安装python包时出现VC++ 错误的解决方案

    方式一 就是按照提示在微软的官网上下载宇宙第一编辑器VS,安装完之后卸载掉就好了. 方式二 下载whl包安装 因为python有很多native的包,不是纯python代码,用了诸如c/c++的代码, ...

  4. GOLANG的继承+接口语法练习

    继承与接口同时存在 在Golang语言中,可以这么说:接口是继承的功能补充! 武当派有一个徒弟结构体,它继承WuDangMaster结构体的字段及方法 武林之中还有一个泰山北斗,名约少林派,少林入门神 ...

  5. linux usb驱动记录(二)

    三.usb设备的识别过程 在这里梳理一下上一篇博客中的内容:(这张图来自https://blog.csdn.net/lizuobin2/article/details/51931161) 上一篇博客刚 ...

  6. [Abp vNext微服务实践] - 租户登录

    简介 Abp vNext微服务授权验证基于ids4,实现租户登录需要在授权服务中获取token,和之前的介绍的登录方式一样,只是多了tenant参数.本篇将介绍在Abp vNext授权服务中启用多租户 ...

  7. C#中设置double类型数据的小数长度

    如果double A=1.5321654:需要将其转换为3位小数,字符串的话A.tostring(".###")就可以,输出的是1.532: 也可以用A.ToString(&quo ...

  8. java——springmvc——注册中央调度器

    在WEB-INF下的web.xml中配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xm ...

  9. Vue入门(三)——模拟网络请求加载本地数据

    1.首先我们需要在webpack.dev.conf.js中const PORT = process.env.PORT && Number(process.env.PORT) 的后面追加 ...

  10. js过滤时间格式

    Date.prototype.Format = function(fmt) { //author: meizz var o = { "M+" : this.getMonth()+1 ...