python-numpy
Numpy学习的官方网站:http://www.numpy.org/
编译器:pycharm
加载库操作:
file-setting-...,如下图所示:
引用语句:
import numpy as np
功能介绍:
- 提供数组的矢量化操作,所谓矢量化就是不用循环就能将运算符应用到数组中的每个元素中。
- 提供数学函数应用到每个数组中元素
- 提供线性代数,随机数生成,傅里叶变换等数学模块
- ndarray:numpy库的心脏,多维数组,具有矢量运算能力,快速、节省空间在array中的数据类型是一致的。
ndarray:
ndarray具有多维性。ndarray的元素可以通过索引的方式进行访问。在Numpy中,ndarray的维度称为axes。axes的大小称为rank。列如ndarray[1,2,1],它的维度为1,rank的值为1,因为只有一维。索引从0开始
主要函数:
其他:
- 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.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()余数的正负由被除数决定,与除数无关
专用函数:
- 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()是逆操作
感想:
大部分的函数和matlab的相近,语法也差不多。提供了很多数学计算函数。
操作也大部分是在原矩阵上实现,节省了很多空间。
-----------------------------------------------------------------------------------------------------------------------------------2018.3.18