python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。
从numpy进口*;#导入numpy的库函数 进口numpy np;#这个方式使用numpy的函数时,需要以np。开的头。 >之前
由一维或二维数据创建矩阵
从numpy进口*; a1=数组([1,2,3]); a1=垫(a1); >之前创建常见的矩阵
data1=垫(0 ((3、3))); #创建一个3 * 3的零矩阵,矩阵这里0函数的参数是一个tuple类型(3、3) data2=垫(((2、4))); 1 #创建一个2 * 4的矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int data3=垫(random.rand (2, 2)); #这里的随机模块使用的是numpy中随机的模块,random.rand(2, 2)创建的是一个二维数组,需要将其转换成#矩阵 data4=垫(random.randint(10、大?(3、3))); #生成一个3 * 3的清廉之间的随机整数矩阵,如果需要指定下界则可以多加一个参数 data5=垫(random.randint(2, 8,大?(2、5)); #产生一个2 - 8之间的随机整数矩阵 data6=垫(眼(2,2,dtype=int)); #产生一个2 * 2的对角矩阵 a1=(1、2、3); a2=垫(诊断接头(a1)); #生成一个对角线为1、2、3的对角矩阵
1。矩阵相乘
a1=垫([1,2]); a2=垫([[1],[2]]); a3=a1 * a2; # 1 * 2的矩阵乘以2 * 1的矩阵,得到1 * 1的矩阵 >之前2。矩阵点乘
矩阵对应元素相乘
a1=垫([1]); a2=垫((2,2)); a3=乘以(a1, a2); >之前矩阵点乘
a1=垫((2,2)); a2=a1 * 2; >之前3。矩阵求逆,转置
矩阵求逆
a1=垫(眼(2,2)* 0.5); a2=a1.I; 0.5 #求矩阵矩阵([[0],[0,0.5]])的逆矩阵 >之前矩阵转置
a1=垫([[1],[0]]); a2=a1.T; >之前4。计算矩阵对应行列的最大,最小值,和。
a1=垫([[1],[2、3],[4,2]]); >之前计算每一列,行的和
a2=a1.sum(轴=0);//列和,这里得到的是1 * 2的矩阵 a3=a1.sum(轴=1);//行和,这里得到的是3 * 1的矩阵 a4=总和(a1[1:]);//计算第一行所有列的和,这里得到的是一个数值计算最大,最小值和索引
a1.max();//计算a1矩阵中所有元素的最大值,这里得到的结果是一个数的值 a2=max (a1(:, 1]);//计算第二列的最大值,这里得到的是一个1 * 1的矩阵 a1 [1:] .max();//计算第二行的最大值,这里得到的是一个一个数的值 np.max (a1, 0);//计算所有列的最大值,这里使用的是numpy中的马克斯函数 np.max (a1, 1);//计算所有行的最大值,这里得到是一个矩阵 np.argmax (a1, 0);//计算所有列的最大值对应在该列中的索引 np.argmax (a1[1:]);//计算第二行中最大值对应在改行的索引5。矩阵的分隔和合并
矩阵的分隔,同列表和数组的分隔一致。
一个=垫(((3、3))); b=[1: 1:];//分割出第二行以后的行和第二列以后的列的所有元素矩阵的合并
一个=垫(((2,2))); b=垫(眼(2)); c=vstack ((a, b));//按列合并,即增加行数 d=hstack ((a, b));//按行合并,即行数不变,扩展列数
列表可以修改,并且列表中元素可以使不同类型的数据,如下:
l1=[[1],“你好”,3]; >之前numpy中数组,同一个数组中所有元素必须为同一个类型,有几个常见的属性:
一个=阵列([[2],[1]]); 尺寸=a.ndim; m, n=a.shape; 数量=a.size;//元素总个数 str=a.dtype;//元素的类型 >之前numpy中的矩阵也有与数组常见的几个属性。
它们之间的转换:
a1=[[1、2],[3 2],[5, 2]];//列的表 a2=数组(a1);//将列表转换成二维数组 a3=数组(a1);//将列表转化成矩阵 a4=数组(a3);//将矩阵转换成数组 a5=a3.tolist();//将矩阵转换成列的表 a6=a2.tolist();//将数组转换成列表python的常见矩阵运算(小结)