Numpy的矩阵相关操作 |
您所在的位置:网站首页 › numpy矩阵reshape › Numpy的矩阵相关操作 |
NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组array),它们都可以用于处理行列表示的数组元素, 虽然它们看起来很相似,但是在这两种数据类型上执行相同的数学运算,可能得到不同的结果。 在NumPy中,矩阵应用十分广泛 创建矩阵 mat()mat()函数创建的是矩阵类型,array()函数创建的是数组类型,而用mat()函数创建的矩阵才能进行一些线性代数的操作 语法:np.mat([[数据]]) 注意:矩阵需要使用[]包着 (1)创建一个3×3的0(零)矩阵 np.mat(np.zeros((3,3))) (2)创建一个2x4的1矩阵 np.mat(np.ones((2,4))) (3)使用random模块的rand()函数创建一个3×3为0~1随机产生的二维数组,并将其转换为矩阵 np.mat(np.random.rand(3,3)) (4)创建一个1~8的随机整数矩阵 np.mat(np.random.randint(1,8,size=(3,5))) (5)创建对角矩阵 np.mat(np.eye(4,4,dtype=int)) (6)创建对角线矩阵 np.mat(np.diag()) 矩阵运算使用算术运算符“+”“-”“*”“/”对矩阵进行加、减、乘、除的运算 矩阵的加减除可以直接对两个数组进行操作 但是矩阵的乘法比较特殊,第一行要分别乘于每一列得出结果 import numpy as np data1=np.mat([[1,2],[3,4],[5,6]]) data2=np.mat([[1,2],[3,4]]) print(data1*data2)结果:[[ 7 10] [15 22] [23 34]] 运算过程:data1中的1,2分别乘于data2的1,3和2,4,然后依次类推 矩阵元素相乘可以使用multiply()函数 矩阵转换 1.矩阵转置 T使用T属性实现矩阵转置 2.矩阵求逆 I矩阵要可逆,否则意味着该矩阵为奇异矩阵(即矩阵的行列式的值为0) NumPy常用统计分析函数 数学运算函数 函数说明add() subtract() multiply() divide()简单的数组加减乘除运算abs()取绝对值sqrt()计算数组中各元素的平方根square()计算数组中各元素的平方log() log10() log2()计算数组中各元素的自然对数分别以10,2为底reciprocal()计算数组中各元素的倒数,4/3的倒数是3/4power()第一个数组中的元素为底数,计算它与第二各数组中相应元素的幂 mod()计算数组之间相应元素相除后的余数 ,负数取余算法r=a-n[a//n] ,其中r为余数,a是被除数,n是除数,“//”为运算取商时保留整数的下界,即偏向于较小的整数around()指定小数位数的四舍五入,如果数为一个负数,那么就向数据前多少位进行四舍五入ceil() floor()计算数组中各元素向上取整,返回大于或者等于指定表达式的最小整数 向下取整:返回小于或者等于指定表达式的最大整数 sin() cos() tan()三角函数,计算数组中角度的正弦值,余弦值,和正切值 弧度转角度 np.degrees() np.pi表示Π modf()把数组的小数位和整数分割成独立的数组exp()计算数组中各元素的指数值sign()计算数组中各元素的符号值(+ )(-)maximum() fmax()计算数组元素的最大值,计算两个数组同一位置的最大值minimum() fmin()计算数组中元素的最小值,计算两个数组同一位置的最小值 copysign(a,b)将数组b中各元素的符号赋值给数组a对应的元素 统计分析函数 统计分析函数 函数说明sum()对数组中元素或某行某列的元素求和,不指定行列,求得是整个数组的和, 可以使用axis指定行列0表示行,1表示列 cumsum()所有数组元素的累计求和,第一行/列数据加上第二行/列数据,依次累加 最后一行/列的值是上边的累加 cumprod()所有数组元素累计求积,原理同上mean()计算平均值,默认是所有数据的平均值,可以使用axis指定min() max()计算数组的最小值和最大值average()加权平均值,一个数出现的次数为权,将一组数据与出现的次数相乘再平均就是“加权平均” median()计算数组中元素的中位数(中值)var()计算方差std()计算标准差prod()求积argmin() argmax()计算数组最小值和最大值的下标unravel_index()根据数组形状将一维下标转成多维下标ptp()计算数组最大值和最小值的差 数组的排序 1.sort()函数使用sort函数进行排序,直接会改变原数组,参数axis指定按行还是按列排序 2.argsort()函数使用argsort()函数对数组进行排序,返回升序排序之后数组值从小到大的索引值 返回的是我们排序后的索引值,而不是数据 3.lexsort()函数lexsort()函数用于对多个序列进行排序。可以把它当作是对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列 有一组数据,总分,数学和英语分数,如果想要按照总分优先,数学其次,最后看英语成绩的这样的一个数据,他们的排序应该是英语,数学,和总分,优先照顾靠后的列 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |