热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python两个数组是否相等_Python学习第116课numpy.dot和矩阵相乘的数学运算

【每天几分钟,从零入门python编程的世界!】关于numpy中数组的相乘,我们学习了对位相乘(用numpy.multiply、或*直接相

【每天几分钟,从零入门python编程的世界!】

关于numpy中数组的相乘,我们学习了对位相乘(用numpy.multiply、或*直接相乘,比如数组a和b的对位相乘就是numpy.multiply(a,b)或a*b)和一维数组的点乘(dot product,也有人叫inner product,比如一维数组a和b的点乘就是a.b)。

numpy中的点乘就是numpy.dot。对于二维以上的数组的点乘,就会用到矩阵相乘。

对于矩阵相乘,我们直接推导最一般最基本的情况,就是ndarray(我们可以把它理解为n维的数组)和mdarray(我们可以把它理解为m维的数组)这两个数组进行相乘。所以我们必须要接触matrix(矩阵)的一些概念,我们可以把matrix看做是一种非常有用的数据储存的结构。在后面的物理、Fintech(科技金融)、图像识别、机器学习等方面,都可以用到矩阵。

因此矩阵的数学原理也是非常重要的,感兴趣的话可以去看看。现在我们只做一些最简单的演示,如果现在对矩阵了解的不是很深入也没关系,也没有必要在现在的阶段花很大精力去学习,我们后面的学习中会不断的去重复和推演。现在先掌握最基础的东西,然后在numpy中知道怎么用矩阵相乘的方法去计算就可以了。

matrix multiplication(矩阵相乘)就是两个矩阵形式结构的数据进行运算的方法。同时因为矩阵在空间上是有它的意义的,所以矩阵运算是一个很精妙的东西。

numpy.dot的计算方法有很多,相当于当两个数组进行点乘的时候,它在内部对这两个数组做了一个判断,它会根据这两个数组的不同维度结构,采用不同的计算方式,所以它会判断对于两个都是一维的数组,怎么计算,两个二维以上的数组,怎么计算,比如二维以上数组的点乘,就是用我们现在介绍的矩阵相乘的方法计算。

7dd30261ab0ff23d5b181b5aa2cbaaa3.png

●矩阵相乘

关于矩阵相乘,大学的线性代数课程里面学过,现在我再大概的介绍一下最基本的运算。矩阵运算的其他的一些规则、规律,后面遇到了会再进行介绍。

例:

比如现在有两个矩阵x和y。

x和y都是2*2的结构,就是2行2列的结构。

运算过程:

①矩阵相乘,首先要判断第一个矩阵的列数和第二个矩阵的行数是否相等,如果相等才能进行相乘。

在本例中,x的列数是2,y的行数是2,所以可以相乘。

②其次,把第一个矩阵的列数和第二个矩阵的行数消掉,剩下的数字就是相乘后的结果的行数和列数

在本例中,把第一个矩阵的列数2和第二个矩阵的行数2消掉,剩下的数字就是第一个矩阵的行数2和第二个矩阵的列数2,所以相乘的结果是2行2列的矩阵。

假如说x是3行2列,y是2行5列,那么相乘的结果,就是3行5列的矩阵。

③运算过程如下图:

a71ea5a6516a5280aa7f227992a32010.png

上图是两个2x2的矩阵相乘的运算过程和结果。

其他维度的矩阵相乘,相信你也知道如何运算了吧,规律是一样的。如果有不明白的,可以评论区留言都可以。

以上就是矩阵相乘的运算方法和过程。

我是时问新,欢迎关注我。跟我一起从零开始学习Python,每天花一点时间,开启python编程新世界的大门,领略新的风光,让人生多一种可能!



推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • plt python 画直线_机器学习干货,一步一步通过Python实现梯度下降的学习
    GradientDescent-梯度下降梯度下降法(英语:Gradientdescent)是一个一阶最优化算法,通常也称为最速下降法。要使用梯度下降法找 ... [详细]
  • TensorFlow入门上
    前置准备在阅读本文之前,请确定你已经了解了神经网络的基本结构以及前向传播、后向传播的基本原理,如果尚未了解,可以查看下文。神经网络初探​chrer.com也可以直接在我博客阅读Te ... [详细]
author-avatar
燕灬子78
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有