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

    numpy的功能:

        提供数组的矢量化操作,所谓矢量化就是不用循环就能将运算符应用到数组中的每个元素中。
        提供数学函数应用到每个数组中元素
        提供线性代数,随机数生成,傅里叶变换等数学模块
    

    numpy数组操作

        numpy.array([],dttype=)生成ndarry数组,dttype指定存储数据类型
        numpy.zeros((3,4))生成指定元素0的3行4列矩阵。
        numpy.reshape((2,2))转换数组阵维数为2行2列
        numpy.arange(4)生成0到3的一行矩阵。
        numpy.dot(a,b)矩阵a,b乘法
        numpy.sum(a,axis=1)axis=1表示在矩阵a的行求和,axis=0表示在列求和
        ndarray.T,ndarray表示数组类型,T表示转置矩阵。
        ndarray.flateen()返回数组元素形成的列表,flat()返回迭代对象。
        numpy.vstack((A,B,C))上下合并矩阵数组A,B,C。
        numpy.hstack((A,B,C))左右合并矩阵数组A,B,C。
        ndarray[:,numpy.newaxis]增加列的维度。对于单行横矩阵,变成单行列矩阵。
        numpy.concatenate((A,B,B,A),axis=0)也是合并矩阵,axis=0表示垂直合并,- axis=1表示水平合并
        numpy.dstack(())深度组合,将互不相干的
        numpy.split(A,2,axis=1)对矩阵数组分割分成两块,axis=1是行分割,axis=0是列分割。等量分割,必须除的断
        numpy.array_split(A,2,axis=1)不等量分割,第一个矩阵占元素较多。
        numpy.vsplit(A,3)纵向分割,hsplit(A,3)横向分割 对于多维,只分割最外维的
        numpy.dsplit()深度分割,突破维数的一列一列的分割
        numpy属性 size元素个数 itemsize元素空间大小 nbytes总空间 T转置 ndim维数 real复数数组的实部,imag复数数组的虚部 flat返回迭代器遍历数组
        numpy.tolist()将数组转换为列表
        numpy.eye(宽高)单位矩阵即对角线为1的二维数组
        numpy.loadtxt(‘data.csv’,delimiter=’,’,)载入csv文件
        numpy.mean()对数组取平均值
        numpy.average()时间加权平均值,最近的数权重大些
        numpy.max()取到数组最大值
        numpy.min()取到数组最小值
        numpy.median()取到数组中位数
        numpy.msort()排序数组
        numpy.var()统计数组的方差
        numpy.diff()返回数组相邻值的差值组成的数组
        numpy.log()得到数组每个元素的对数数组
        numpy.std()数组的标准差
        ndarray.copy()复制
        numpy.dtype()自定义数据类型,接收元组的列表作为参数。()元组第一个是数据名称,第二个是数据类型,第三个指定数据类型长度,创立该类型的数据只要将对应数据元组列表传给array()指定dtype=自定义数据类型
        利用:或…对多维数组进行切片
        numpy.ravel()输出一个多维数组被抹平成一维数组的视图
        numpy.resize()直接修改数组,而reshape()返回修改后的新数组
        numpy.transpose()转置
        numpy.where(x,date==i)取出符合条件表达式的索引
        numpy.take(x,indices)根据索引数组取出值数组
        numpy.maximum(多个数组)每个数组的最大值组成一个数组
        numpy.convolve()卷积,两个函数相乘,移动窗口均值可以用1/窗口长度组成的数组和原数组作为参数
        numpy.linespace()返回一个元素值在指定范围均匀分布的数组
        ndarray.clip(min,max)返回一个修剪过的数组,比min小的修正为min,比max大的修正为max
        ndarray.compress(条件)返回数组元素经过条件筛选组成的数组
        ndarray.prod计算所有元素的乘积
        numpy.cov()计算两个数组之间的协方差矩阵
        ndarray.trace计算矩阵的迹,即对角线元素之和
        numpy.corrcoef()计算两个数组之间的相关系数
        numpy.ployfit(x=,y=,阶次)对给的数据进行多项式拟合
        numpy.polyval(ployfit拟合的函数,x)进行计算预测
        numpy.polyder(多项式函数)对函数进行求导
        numpy.argmax(函数对象)找出最大值点的x值
        numpy.hanning()加权余弦窗函数进行数据平滑
        numpy.mat(‘1;4;4’)创建矩阵,矩阵的行与行用分号隔开,也可以传入已有矩阵,但是不会创建副本
        .-I属性是逆矩阵
        numpy.matrix(data,copy=False)也是创建矩阵
        numpy.bmat(“矩阵名A 矩阵名B;矩阵名A 矩阵名B;”)通过分块矩阵创建大矩阵
        numpy.remainder(),mod(),%返回两个数组中相除后的余数组成的数组
        numpy.Fmod()余数的正负由被除数决定,与除数无关
    

    通用函数

        numpy.frompyfunc()创建通用函数 生成输入两个参数输出一个参数的ufunc对象,
        np.add.reduce()对数组元素求和
        np.add.accmulate()返回中间结果,返回一步一步求和组成的数组,等价于cumsum()函数
        np.add.reduceat()在某个范围进行求和
        np.add.outer()等于两个输入数组的秩的和
    

    专用函数

        np.bitwise_xor()函数对应异或 bitwise_and对应与 ==对应equal()函数
        np.linalg.inv(A)计算矩阵A的逆矩阵
        np.linalg.solve(A,b)用矩阵对向量b进行线性变换,即求解线性方程组得出系数向量
        np.dot(A,x)点积函数,通过矩阵A与系数向量x点积来验证求解线性方程组是否正确。
    

    线性代数专用函数

        np.linalg.eigvals()计算矩阵的特征值
        np.linalg.eig()返回特征值和对应的特征向量的元组
        np.linalg.svd()分解矩阵为三个矩阵的乘积
        np.linalg.pinv()求解广义逆矩阵
        np.linalg.det(A)计算矩阵的行列式
        np.linalg.fftshift()FFT输出中的直流分量移动到频谱的中央ifftshift()是逆操作
    

    随机数专用函数

        np.random.binomial(最大值,概率,产生数的个数)产生符合二项分布的随机数
        np.random.hypergemotric(普通球数量,倒霉球数量,一次取出个数,个数)超几何分布
        np.random.beta、chisquare、exponential、f、连续分布
        np.random.normal(数量)正态分布随机数
        np.random.lognormal()对数正态分布
    

    数组专用函数

        np.sort()排序 lesort()根据键值对字典进行排序,argsort()返回输入数组排序后的下标
        ndarray.sort()对数组进行原地排序。msort()沿第一个轴进行排序,sort_complex()对复数按照先实部后虚部的顺序进行排序。
        np.searchsorted(数组a,要插入的数组值)计算出不影响数组a的插入位置索引,再通过np.insert(a,索引,插入数组)就不影响原先数组的顺序
        np.extract((a%2==0),a)从a中抽取能被2整除的元素
        np.nonzero(a)抽取非0元素
        np.outer(a数组,b数组)a数组的元素*b数组行,生成二维数组
    

    金融专用函数

        np.fv()计算终值
        np.pv()金融资产当前的价值
        np.npv按折现率计算的净现金流之和
        np.pmt根据本金和利率计算每期需支付的金额
        np.irr 内部收益率净现值为0时的有效利率,不考虑通胀因素
        np.mirr计算修正后内部收益率
    

    窗函数

        np.bartlett()巴特利特窗,三角形平滑窗
        np.blackman()布莱克曼窗,三项余弦函数
        np.hmming()汉明窗,加权余弦函数
    

    数学函数

        np.i0()零阶贝塞尔函数
        np.sinc()1阶贝塞尔函数
    

    测试专用函数

        np.assert_almost_equal(num1,num2,精度(小数点后几位+1))断言进行相等,否则抛出异常
        np.assert_approx_equal(num1,num2,有效数字(小数点后几位))一样的效果
        np.assert_array_almost_equal()断言数组近似相等,前提大小一致,否则抛出异常
        np.assert_array_equal()比较数组的元素是否都相等,允许空值
        np.assert_array_less()比较一个数组每个元素是否大于另一个数组的对应索引的每个元素,抛出异常
    

    numpy中要注意的几个地方:

        切片不会复制原数组,而是生成原数组的视图,对视图的更改会反映到原数组上。一般的函数都是直接在原数组上进行操作,这样不用复制数组,节省大量时间。
    
  • 相关阅读:
    Spring Cloud云架构
    Spring Cloud云架构
    Spring Cloud云架构
    Spring Cloud云架构
    Spring Cloud Consul
    Spring Cloud Eureka
    构建Spring Cloud微服务分布式云架构
    数据库三范式
    redis3.0.0 集群安装详细步骤
    sql优化的几种方法
  • 原文地址:https://www.cnblogs.com/ldsice/p/11042473.html
Copyright © 2011-2022 走看看