zoukankan      html  css  js  c++  java
  • numpy总结

    import numpy as np

    1.array()方法 创建数据

    2.shape属性 数组的形状
    3.reshape()方法 创建指定形状的新数组
    4.dtype属性 得到数组的元素类型
    5.arange()方法 通过指定开始值、终值和步长创建等差数组
    6.linspace()方法 通过指定开始值、终值和元素个数创建表示等差数列的一维数组(可通过endpoint指定是否包含终值)
    7.logspace()方法 创建等比数列(base设置基数)
    8.zeros(),ones(),empty()方法 创建指定形状的数组
    9.zeros_like(),ones_like(),empty_like()方法 创建与参数形状和类型相同的数组
    10.frombuffer(),fromstring(),fromfile()方法 从字节序列或文件创建数组
    11.fromfunction()方法 通过预先定义的函数来创建数组

    12.s_对象 创建数组下标
    13.tostring(),tofile()方法 将数组以二进制的方式转换成字符串或者写入文件中
    14.item()方法 返回标准python类型

    15.frompyfunc() 将计算单个值得函数转换为一个能对数组中每个元素进行计算的ufunc函数

    16.ogrid对象 快速产生能进行广播运算的数组

    函数库
    17.sum()求和,mean()求平均值,average()求平均(无out,dtype参数,有weight参数),std()标准差,var()方差
    18.min()最小值,max()最大值,ptp()最大最小之差,argmax()最大值下标,argmin()最小值下标
    19.sort()排序
    多项式
    20.poly1d一元多项式对象,poly1d将系数转换为一元多项式对象
    21.deriv()方法 多项式微分,integ()方法 多项式积分
    22.roots()函数 计算多项式的根
    23.poly函数 将根转换为多项式的系数
    分段函数
    24.where(condition,y,z)
    25.select(condlist, choicelist, default=0)
    26.piecewise(x, condlist, funclist)
    统计函数
    27.unique()返回其参数数组中所有不同的值,并且按照从小到大的顺序排列
    28.bincount()函数 对整数数组中各个元素出现的次数进行统计
    29.histogram()函数 对一维数组进行直方图统计,参数列表:
    histogram(a, bins=10, range=None, normed=False, weights=None)

    线性代数
    各种乘积运算
    30.dot() 计算矩阵的乘积
    结果数组中的每个元素都是:数组a最后一维上的所有元素与数组b倒数第二维上的所有元素的乘积和
    31.inner()
    结果数组中的每个元素都是:数组a和b最后一维的内积
    32.outer() 只按照一维数组进行计算
    解线性方程组
    33.linalg模块:numpy线性代数模块
    34.solve() 求解多元一次方程组
    35.lstsq() 更一般化的求解多元一次方程组,a可以不是方阵

    文件存取
    36.tofile()方法 将数组数据以二进制格式写进文件
    37.fromfile() 读取文件,需要制定dtype类型
    38.load(),save() 用numpy专用的二进制格式保存数据
    39.savez() 保存多个数组
    40.savetxt(),loadtxt() 读写保存一维和二维数组的文本文件


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

    一、数组方法

    创建数组: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()
  • 相关阅读:
    ASP.Net设计时需要考虑的性能优化问题 转载自http://blog.sina.com.cn/s/blog_3d7bed650100055p.html
    Jqeruy dropdownlist 联动
    Sound Recording in Windows Phone 7
    Windows Phone Performance 系列网址集合
    【xml]: Read XML with Namespace resolution using XLinq.XElement
    编程基础字符篇(2)
    每日总结一:
    每日总结5:
    Control usage: (1) Windows Phone 7: Popup control
    编程基础字符篇(3)
  • 原文地址:https://www.cnblogs.com/woaixuexi9999/p/9229367.html
Copyright © 2011-2022 走看看