返回顶部
首页 > 资讯 > 后端开发 > Python >python中的矩阵运算
  • 397
分享到

python中的矩阵运算

矩阵python 2023-01-31 07:01:26 397人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

转自:https://www.cnblogs.com/chamie/p/4870078.html 摘自:Http://m.blog.csdn.net/blog/taxueguilai1992/46581861 python的numpy库

转自:https://www.cnblogs.com/chamie/p/4870078.html

摘自:Http://m.blog.csdn.net/blog/taxueguilai1992/46581861

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

复制代码

创建常见的矩阵

复制代码


>>>data1=mat(zeros((3,3))) #创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3)
>>> data1
matrix([[ 0.,  0.,  0.],
        [ 0.,  0.,  0.],
        [ 0.,  0.,  0.]])
>>>data2=mat(ones((2,4))) #创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int
>>> data2
matrix([[ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.]])
>>>data3=mat(random.rand(2,2)) #这里的random模块使用的是numpy中的random模块,random.rand(2,2)创建的是一个二维数组,需要将其转换成#matrix
>>> data3
matrix([[ 0.57341802,  0.51016034],
        [ 0.56438599,  0.70515605]])
>>>data4=mat(random.randint(10,size=(3,3))) #生成一个3*3的0-10之间的随机整数矩阵,如果需要指定下界则可以多加一个参数
>>> data4
matrix([[9, 5, 6],
        [3, 0, 4],
        [6, 0, 7]])
>>>data5=mat(random.randint(2,8,size=(2,5))) #产生一个2-8之间的随机整数矩阵
>>> data5
matrix([[5, 4, 6, 3, 7],
        [5, 3, 3, 4, 6]])
>>>data6=mat(eye(2,2,dtype=int)) #产生一个2*2的对角矩阵
>>> data6
matrix([[1, 0],
        [0, 1]])

a1=[1,2,3]
a2=mat(diag(a1)) #生成一个对角线为1、2、3的对角矩阵
>>> a2
matrix([[1, 0, 0],
        [0, 2, 0],
        [0, 0, 3]])

复制代码

3.常见的矩阵运算

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

矩阵点乘


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

3.矩阵求逆,转置 
矩阵求逆

复制代码


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

复制代码

矩阵转置

复制代码


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

复制代码

4.计算矩阵对应行列的最大、最小值、和。


3>>>a1=mat([[1,1],[2,3],[4,2]])
>>> a1
matrix([[1, 1],
        [2, 3],
        [4, 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.max()   #计算a1矩阵中所有元素的最大值,这里得到的结果是一个数值
4
>>>a2=max(a1[:,1]) #计算第二列的最大值,这里得到的是一个1*1的矩阵
>>> a2
matrix([[3]])
>>>a1[1,:].max()  #计算第二行的最大值,这里得到的是一个一个数值
3
>>>np.max(a1,0)  #计算所有列的最大值,这里使用的是numpy中的max函数
matrix([[4, 3]])
>>>np.max(a1,1)  #计算所有行的最大值,这里得到是一个矩阵
matrix([[1],
        [3],
        [4]])
>>>np.argmax(a1,0) #计算所有列的最大值对应在该列中的索引
matrix([[2, 1]])
>>>np.argmax(a1[1,:])  #计算第二行中最大值对应在该行的索引
1

复制代码

5.矩阵的分隔和合并 
矩阵的分隔,同列表和数组的分隔一致。

复制代码


>>>a=mat(ones((3,3)))
>>> a
matrix([[ 1.,  1.,  1.],
        [ 1.,  1.,  1.],
        [ 1.,  1.,  1.]])
>>>b=a[1:,1:]  #分割出第二行以后的行和第二列以后的列的所有元素
>>> b
matrix([[ 1.,  1.],
        [ 1.,  1.]])

复制代码

矩阵的合并

复制代码


>>>a=mat(ones((2,2)))
>>> a
matrix([[ 1.,  1.],
        [ 1.,  1.]])
>>>b=mat(eye(2))
>>> b
matrix([[ 1.,  0.],
        [ 0.,  1.]])
>>>c=vstack((a,b))  #按列合并,即增加行数
>>> c
matrix([[ 1.,  1.],
        [ 1.,  1.],
        [ 1.,  0.],
        [ 0.,  1.]])
>>>d=hstack((a,b))  #按行合并,即行数不变,扩展列数
>>> d
matrix([[ 1.,  1.,  1.,  0.],
        [ 1.,  1.,  0.,  1.]])

复制代码

4.矩阵、列表、数组的转换

列表可以修改,并且列表中元素可以使不同类型的数据,如下:


l1=[[1],'hello',3];

numpy中数组,同一个数组中所有元素必须为同一个类型,有几个常见的属性:

复制代码


>>>a=array([[2],[1]])
>>> a
array([[2],
       [1]])
>>>dimension=a.ndim
>>> dimension
2
>>>m,n=a.shape
>>> m
2
>>> n
1
>>>number=a.size #元素总个数
>>> number
2
>>>str=a.dtype #元素的类型
>>> str
dtype('int64')

复制代码

numpy中的矩阵也有与数组常见的几个属性。 
它们之间的转换:

复制代码


>>>a1=[[1,2],[3,2],[5,2]]  #列表
>>> a1
[[1, 2], [3, 2], [5, 2]]
>>>a2=array(a1)  #将列表转换成二维数组
>>> a2
array([[1, 2],
       [3, 2],
       [5, 2]])
>>>a3=mat(a1)  #将列表转化成矩阵
>>> a3
matrix([[1, 2],
        [3, 2],
        [5, 2]])
>>>a4=array(a3)  #将矩阵转换成数组
>>> a4
array([[1, 2],
       [3, 2],
       [5, 2]])
>>>a41=a3.getA()  #将矩阵转换成数组
>>>a41
array([[1,2]
       [3,2]
       [5,2]])
>>>a5=a3.tolist()  #将矩阵转换成列表
>>> a5
[[1, 2], [3, 2], [5, 2]]
>>>a6=a2.tolist()  #将数组转换成列表
>>> a6
[[1, 2], [3, 2], [5, 2]]

复制代码

这里可以发现三者之间的转换是非常简单的,这里需要注意的是,当列表是一维的时候,将它转换成数组和矩阵后,再通过tolist()转换成列表是不相同的,需要做一些小小的修改。如下:

复制代码


>>>a1=[1,2,3]   #列表
>>>a2=array(a1)
>>> a2
array([1, 2, 3])
>>>a3=mat(a1)
>>> a3
matrix([[1, 2, 3]])
>>> a4=a2.tolist()
>>> a4
[1, 2, 3]
>>> a5=a3.tolist()
>>> a5
[[1, 2, 3]]
>>> a6=(a4==a5)
>>> a6
False
>>> a7=(a4 is a5[0])
>>> a7
True

复制代码

矩阵转换成数值,存在以下一种情况:


>>> dataMat=mat([1])
>>> val=dataMat[0,0]  #这个时候获取的就是矩阵的元素的数值,而不再是矩阵的类型
>>> val
1

--结束END--

本文标题: python中的矩阵运算

本文链接: https://lsjlt.com/news/190797.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python中的矩阵运算
    转自:https://www.cnblogs.com/chamie/p/4870078.html 摘自:http://m.blog.csdn.net/blog/taxueguilai1992/46581861 python的numpy库...
    99+
    2023-01-31
    矩阵 python
  • Python中的Numpy矩阵运算
    目录在学习线性代数时我们所接触的矩阵之间的乘法是矩阵的叉乘,有这样一个前提: 若矩阵A是m*n阶的,B是p*q阶的矩阵,AB能相乘,首先得满足:n=p,即A的列数要等于B的行数。运算...
    99+
    2024-04-02
  • Numpy中的矩阵运算
    安装与使用 大型矩阵运算主要用matlab或者sage等专业的数学工具,但我这里要讲讲python中numpy,用来做一些日常简单的矩阵运算!这是 numpy官方文档,英文不太熟悉的,还有 numpy中文文档 numpy 同时支持 pyt...
    99+
    2023-01-31
    矩阵 Numpy
  • python:矩阵的基本运算
    一、Python 矩阵基本运算 引入 numpy 库 import numpy as np python矩阵操作 1)使用 mat 函数创建一个 2X3矩阵 a = np.mat([[1, 2, 3], [4, 5, 6]])  2)使用...
    99+
    2023-09-02
    python 矩阵 numpy
  • python的常见矩阵运算
    python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。 1.numpy的导入和使用 from numpy import *;#导入numpy的库函数 import numpy as n...
    99+
    2023-01-31
    矩阵 常见 python
  • 常见矩阵运算Python
    python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。 1.numpy的导入和使用 from numpy import *;#导入numpy的库函数 import numpy as np; #...
    99+
    2023-01-31
    矩阵 常见 Python
  • Python 的矩阵传播机制Broadcasting和矩阵运算
    目录一、Python的矩阵传播机制(Broadcasting)二、下面展示什么是python的传播机制三、利用numpy的内置函数对矩阵进行操作四、定义自己的函数来处理矩阵五、总结一...
    99+
    2024-04-02
  • 关于python的矩阵乘法运算
    目录一、矩阵乘法1. A@B 和 np.dot(A,B)2. A*B 或 np.multiply(A,B)二、邻接矩阵的相乘的意义1.定义2.问题3.理解4.代码实现一、矩阵乘法 矩...
    99+
    2023-05-17
    python运算 python 矩阵乘法
  • 怎么在python中实现矩阵乘法运算
    今天就跟大家聊聊有关怎么在python中实现矩阵乘法运算,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相...
    99+
    2023-06-14
  • Python 如何解决稀疏矩阵运算
    用Python求解微分线性方程 因为之前用matlab也编写过,所以前不久试着用python写,感觉之间互通点也蛮多的,易理解。 题目:稀疏线性方程组的求解方法 简单的方程如: AX...
    99+
    2024-04-02
  • 20190524-矩阵算法,矩阵相加,矩
    1.二维矩阵的转置 arrA = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] def turn(arr): if not arr: return [] ...
    99+
    2023-01-31
    矩阵 算法
  • C++矩阵运算的实现简单
    利用C++实现矩阵的构造,通过运算符的重载实现矩阵的乘法、加法等。并且实现矩阵形状的打印,矩阵的打印。 #include<iostream> #include<...
    99+
    2024-04-02
  • python矩阵乘法怎么算
    在 python 中,使用 numpy 库的 matmul() 函数对矩阵执行乘法:创建矩阵。使用 matmul() 函数进行矩阵乘法。 Python中矩阵乘法的计算 如何计算Pyth...
    99+
    2024-05-22
    python
  • Numpy库演示矩阵逆运算的例子
    使用Numpy库进行矩阵逆的实例演示 简介:在线性代数中,矩阵逆是一项非常重要的运算。通过求解矩阵的逆,我们可以解决一系列的数学问题,例如线性方程组的求解和最小二乘法等。本文将通过使用Numpy库,展示如何使用Python编程语...
    99+
    2024-01-24
    Numpy 实例演示 矩阵逆
  • Python中shape计算矩阵的方法示例
    本文实例讲述了Python中shape计算矩阵的方法。分享给大家供大家参考,具体如下: 看到机器学习算法时,注意到了shape计算矩阵的方法接下来就讲讲我的理解吧 >>> from n...
    99+
    2022-06-04
    矩阵 示例 方法
  • Java 超详细带你掌握矩阵的运算
    目录1.物体的坐标变换1.1平移:1.2缩放:1.3旋转:1.4矩阵乘法2.java实现矩阵的相关运算2.1创建矩阵:2.2矩阵加法:2.3矩阵减法:2.4矩阵乘法:2.5矩阵的转置...
    99+
    2024-04-02
  • C++实现重载矩阵的部分运算符
    目录前言正文运行结果前言 博主本人为C++菜鸟一只,本篇博客也是第一次写,主要目的用于自己mark,如有错误欢迎指出 本博客代码为我做C++实验时的代码,由于自己是菜鸟,所以代码内容...
    99+
    2022-11-13
    C++ 重载矩阵运算符 C++ 重载运算符 C++ 矩阵运算符
  • NumPy 打包 Python 编程算法:如何实现高效的矩阵运算?
    NumPy 是 Python 编程中非常重要的一个库,它能够帮助我们实现高效的矩阵运算。本文将为大家介绍 NumPy 的基本使用方法,以及如何用 NumPy 实现高效的矩阵运算。 一、NumPy 简介 NumPy 是 Python 编程中非...
    99+
    2023-06-30
    打包 numy 编程算法
  • NumPy库中的矩阵运算:优化Python数据分析的必备工具
    在Python数据分析领域,矩阵运算是非常重要的一环。NumPy库是Python中最常用的科学计算库之一,它提供了丰富的矩阵运算功能,可以极大地优化Python数据分析的效率。本文将介绍NumPy库中的矩阵运算功能,以及如何使用它们来优化...
    99+
    2023-11-09
    同步 numy 日志
  • R语言学习RcppEigen进行矩阵运算
    目录创建cpp文件代码示例其他矩阵操作命名基础用法定义矩阵对矩阵的一些基础操作1基础操作2矩阵基础运算1矩阵基础运算2求最小最大值、迹等点乘等特征值与特征向量形式转换矩阵初始化0Ma...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作