python linespace,[转载] Python中Numpy基础

参考链接: Python中的numpy.less

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大的修正为maxndarray.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中要注意的几个地方:

切片不会复制原数组,而是生成原数组的视图,对视图的更改会反映到原数组上。一般的函数都是直接在原数组上进行操作,这样不用复制数组,节省大量时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值