优草派  >   Python

python能够进行矩阵运算吗?python如何进行矩阵运算

陈立鑫            来源:优草派

许多学习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]])
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行