矩阵运算
在矩阵运算中,*被重写用于矩阵乘法,.dot()则用于计算矩阵点乘。
mat3=np.mat([[5,6],[7,8]])print('mat1\n', mat1)print('mat3\n', mat3)matrix4 = mat1 * mat3print('矩阵乘法结果\n',matrix4)matrix5 = mat1.dot(mat3)print('矩阵点乘结果\n',matrix5)
mat1[[1 2][3 4]]mat3[[5 6][7 8]]矩阵乘法结果[[19 22][43 50]]矩阵点乘结果[[19 22][43 50]]
矩阵常用函数
矩阵也可以使用.T进行转置。linalg.inv()可以用于求逆矩阵,但若不存在逆矩阵则报错。
matrix6 = matrix.Tmatrix7 = np.linalg.inv(mat1)print('\n矩阵转置后:\n',matrix6,'\n矩阵求逆后:\n',matrix7)
矩阵转置后:[[ 1 6 11][ 2 7 12][ 3 8 17]]矩阵求逆后:[[-2. 1. ][ 1.5 -0.5]]
矩阵特征值
使用numpy必须是方阵
matrix8 = np.linalg.eig(matrix)matrix8
(array([24.88734753, -0.8418908 , 0.95454327]),matrix([[-0.1481723 , -0.87920199, 0.10036602],[-0.4447565 , 0.3814255 , -0.82855015],[-0.88331004, 0.28551435, 0.550846 ]]))
类型转换
矩阵数据类型转换。由于结构类似,矩阵常常与列表和数组进行数据类型的转换。
print("矩阵列表:\n",matrix.tolist(),"\n矩阵转数组:\n",np.array(matrix))
矩阵列表:[[1, 2, 3], [6, 7, 8], [11, 12, 17]]矩阵转数组:[[ 1 2 3][ 6 7 8][11 12 17]]
