python能够进行矩阵运算吗?python如何进行矩阵运算
陈立鑫
优草派
许多学习python的朋友想问,python可以矩阵运算吗?python如何进行矩阵运算等等,下面让我们一起来学习python能不能矩阵运算和python如何进行矩阵运算的。
Python它本身是不支持矩阵运算的,如果想要在python上来进行矩阵运算的话,一般两个方法:
方法一:自己用二维列表定义矩阵,然后自己写矩阵基本运算的函数,这个方法有点事倍功半的意思,所以一般不采用。
方法二:是使用numpy库。python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。
那么让我们来看看如何将numpy导入和使用
from numpy import *;#导入numpy的库函数
import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。
想要进行矩阵式运算的话,首先需要矩阵的创建
矩阵由一维或二维数据创建:
from numpy import * >>> a1=array([1,2,3]) >>> a1 array([1, 2, 3]) >>> a1=mat(a1) >>> a1 matrix([[1, 2, 3]]) >>> shape(a1) (1, 3) >>> b=matrix([1,2,3]) >>> shape(b) (1, 3)
知道了如何创建矩阵后,我们就可以来进行常见的矩阵运算了,下面我们来看几个常见的矩阵运算案例;
案例一:矩阵对应元素相乘
>>>a1=mat([1,1]); >>>a2=mat([2,2]); >>>a3=multiply(a1,a2) >>> a3 matrix([[2, 2]])
multiply()函数:数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致
案例二:矩阵相乘
>>>a1=mat([1,2]); >>>a2=mat([[1],[2]]); >>>a3=a1*a2 #1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵 >>> a3 matrix([[5]])
案例三:矩阵求逆
>>>a1=mat(eye(2,2)*0.5) >>> a1 matrix([[ 0.5, 0. ], [ 0. , 0.5]]) >>>a2=a1.I #求矩阵matrix([[0.5,0],[0,0.5]])的逆矩阵 >>> a2 matrix([[ 2., 0.], [ 0., 2.]])
案例四:计算每一列、行的和
>>>a2=a1.sum(axis=0) #列和,这里得到的是1*2的矩阵 >>> a2 matrix([[7, 6]]) >>>a3=a1.sum(axis=1) #行和,这里得到的是3*1的矩阵 >>> a3 matrix([[2], [5], [6]]) >>>a4=sum(a1[1,:]) #计算第一行所有列的和,这里得到的是一个数值 >>> a4 5 #第0行:1+1;第2行:2+3;第3行:4+2
案例五:矩阵点乘
>>>a1=mat([2,2]); >>>a2=a1*2 >>>a2 matrix([[4, 4]])
案例六:矩阵转置
>>> a1=mat([[1,1],[0,0]]) >>> a1 matrix([[1, 1], [0, 0]]) >>> a2=a1.T >>> a2 matrix([[1, 0], [1, 0]])
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。