python如何进行矩阵运算

python进行矩阵运算的方法:

1、矩阵相乘

>>>a1=mat([1,2]);
>>>a2=mat([[1],[2]]);
>>>a3=a1*a2 #1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵
>>> a3
matrix([[5]])

2、矩阵对应元素相乘

>>>a1=mat([1,1]);
>>>a2=mat([2,2]);
>>>a3=multiply(a1,a2)
>>> a3
matrix([[2, 2]])

multiply()函数:数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致

3、矩阵点乘

>>>a1=mat([2,2]);
>>>a2=a1*2
>>>a2
matrix([[4, 4]])

4、矩阵求逆

>>>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.]])

5、矩阵转置

>>> a1=mat([[1,1],[0,0]])
>>> a1
matrix([[1, 1],
    [0, 0]])
>>> a2=a1.T
>>> a2
matrix([[1, 0],
    [1, 0]])

6、计算每一列、行的和

>>>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

内容扩展:

numpy矩阵运算

(1) 矩阵点乘:m=multiply(A,B)

(2) 矩阵乘法:m1=a*b m2=a.dot(b)

(3) 矩阵求逆:a.I

(4) 矩阵转置:a.T

到此这篇关于python如何进行矩阵运算的文章就介绍到这了,更多相关python进行矩阵运算的方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python操作多维数组输出和矩阵运算示例

    本文实例讲述了Python操作多维数组输出和矩阵运算.分享给大家供大家参考,具体如下: 在许多编程语言中(Java,COBOL,BASIC),多维数组或者矩阵是(限定各维度的大小)预先定义好的.而在Python中,其实现更简单一些. 如果需要处理更加复杂的情形,可能需要使用Python的数学模块包NumPy,链接地址:http://numpy.sourceforge.net/ 首先来看一个简单的二维表格.投掷两枚骰子时,有36种可能的结果.我们可以将其制成一个二维表格,行和列分别代表一枚骰子的得

  • python的常见矩阵运算(小结)

    python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包. 1.numpy的导入和使用 from numpy import *;#导入numpy的库函数 import numpy as np; #这个方式使用numpy的函数时,需要以np.开头. 2.矩阵的创建 由一维或二维数据创建矩阵 from numpy import *; a1=array([1,2,3]); a1=mat(a1); 创建常见的矩阵 data1=mat(zeros((3,3)));

  • python矩阵运算,转置,逆运算,共轭矩阵实例

    我就废话不多说了,大家还是直接看代码吧! #先定义两个矩阵 X=np.array([[1,2104,5,1,45],[1,1416,3,2,40],[1,1534,3,2,30],[1,852,2,1,36]]) y=np.array([45,40,30,36]) #内积以后发现 c=np.dot(X.T,X) c array([[ 4, 5906, 13, 6, 151], [ 5906, 9510932, 21074, 8856, 228012], [ 13, 21074, 47, 19,

  • Python中矩阵创建和矩阵运算方法

    矩阵创建 1.from numpyimport *; a1=array([1,2,3]) a2=mat(a1) 矩阵与方块列表的区别如下: 2.data2=mat(ones((2,4))) 创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int 3.data5=mat(random.randint(2,8,size=(2,5)) 产生一个2-8之间的随机整数矩阵 4.data3=mat(random.rand(2,2)) 这里的random模块使用的是num

  • python如何进行矩阵运算

    python进行矩阵运算的方法: 1.矩阵相乘 >>>a1=mat([1,2]); >>>a2=mat([[1],[2]]); >>>a3=a1*a2 #1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵 >>> a3 matrix([[5]]) 2.矩阵对应元素相乘 >>>a1=mat([1,1]); >>>a2=mat([2,2]); >>>a3=multiply(a1,a2) &

  • Python numpy大矩阵运算内存不足如何解决

    程序运行,产生如下结果,然后进程终止,导致这一结果的原因很有可能是内存爆炸. 当两个较大的 (e.g., 10000*10000 维)ndarray 做运算(加法,or 乘法)时,很容易出现这样的结果. 解决办法: 大多数情况下,这种大矩阵都是稀疏的.尽可能地利用稀疏计算的方式,例如稀疏矩阵,或者只计算非 0 位置的值. 如果都是整数运算,可以设置 dtype=int,而非 dtype=float, 可以省下不少空间. linux 系统下,使用 top 命令,可以很容易地看到内存(%MEM) 的

  • python实现AHP算法的方法实例(层次分析法)

    一.层次分析法原理 层次分析法(Analytic Hierarchy Process,AHP)由美国运筹学家托马斯·塞蒂(T. L. Saaty)于20世纪70年代中期提出,用于确定评价模型中各评价因子/准则的权重,进一步选择最优方案.该方法仍具有较强的主观性,判断/比较矩阵的构造在一定程度上是拍脑门决定的,一致性检验只是检验拍脑门有没有自相矛盾得太离谱. 相关的理论参考可见:wiki百科 二.代码实现 需要借助Python的numpy矩阵运算包,代码最后用了一个b1矩阵进行了调试,相关代码如下

  • python 中的@运算符使用

    在看fastai的代码时,看到这么一段: n=100 x = torch.ones(n,2) x[:,0].uniform_(-1.,1) x[:5] a = tensor(3.,2) y = x@a + torch.rand(n) 这里面有个@符号不知道是啥意思? 于是百度搜了一下,都是说@xxx是注解或者装饰器,明显不是这段代码的场景嘛! 于是又Google了一下,原来这个@是Python 3.5之后加入的矩阵乘法运算符,终于明白了! 补充:python矩阵乘积运算(multiply/mau

  • Python常用库Numpy进行矩阵运算详解

    Numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库! Numpy比Python列表更具优势,其中一个优势便是速度.在对大型数组执行操作时,Numpy的速度比Python列表的速度快了好几百.因为Numpy数组本身能节省内存,并且Numpy在执行算术.统计和线性代数运算时采用了优化算法. Numpy的另一个强大功能是具有可以表示向量和矩阵的多维数组数据结构.Numpy对矩阵运算进行了优化,使我们能够高效地执行线性代数运算,使其非常适合解决机器学习问题. 与Python列表相比

  • Python中的Numpy 矩阵运算

    目录 在学习线性代数时我们所接触的矩阵之间的乘法是矩阵的叉乘,有这样一个前提: 若矩阵A是m*n阶的,B是p*q阶的矩阵,AB能相乘,首先得满足:n=p,即A的列数要等于B的行数.运算的方法如下图: 当时学线性代数时老师教的更为直观记法: 点乘则是这样: 假如有a,b两个矩阵,在Matlab中我们实现点乘和叉乘的方式分别如下: a.*b %表示点乘 a*b %表示叉乘 下面我们来看看python中的操作: import numpy as np a = np.arange(1, 10).resha

随机推荐