NumPy矩阵乘法的实现
作者:睿科知识云 发布时间:2021-11-27 07:09:41
标签:NumPy,矩阵乘法
NumPy矩阵乘法
矩阵乘法是将两个矩阵作为输入值,并将 A 矩阵的行与 B 矩阵的列对应位置相乘再相加,从而生成一个新矩阵,如下图所示:
注意:必须确保第一个矩阵中的行数等于第二个矩阵中的列数,否则不能进行矩阵乘法运算。
图1:矩阵乘法
矩阵乘法运算被称为向量化操作,向量化的主要目的是减少使用的 for 循环次数或者根本不使用。这样做的目的是为了加速程序的计算。
下面介绍 NumPy 提供的三种矩阵乘法,从而进一步加深对矩阵乘法的理解。
逐元素矩阵乘法
multiple() 函数用于两个矩阵的逐元素乘法,示例如下:
import numpy as np
array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3)
array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3)
result=np.multiply(array1,array2)
result
输出结果:
array([[[ 9, 16, 21],
[24, 25, 24],
[21, 16, 9]]])
矩阵乘积运算
matmul() 用于计算两个数组的矩阵乘积。示例如下:
import numpy as np
array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3)
array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3)
result=np.matmul(array1,array2)
print(result)
输出结果:
数组([[[
[30,24,18],
[84,69,54 ],[138,114,90]]])
矩阵点积
dot() 函数用于计算两个矩阵的点积。如下所示:
示例如下:
import numpy as np
array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3)
array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3)
result=np.dot(array1,array2)
print(result)
输出结果:
array([[[[ 30, 24, 18]],
[[ 84, 69, 54]],
[[138, 114, 90]]]])
来源:https://blog.csdn.net/ccc369639963/article/details/124191936


猜你喜欢
- 关闭正在运行的 MySQL :[root@www.woai.it ~]# service mysql stop运行[root@www.woa
- 关于python中的二维数组,主要有list和numpy.array两种。好吧,其实还有matrices,但它必须是2维的,而numpy a
- 第一次做完主从库同步后正常,但工作过程中发现有一个库的数据库没有同步起来,在另外一个mysql(3307)中于是:1、在主库中创建一个临时库
- 要读懂这些代码主要是要了解ASP中操作二进制数据的对象ADODB.Stream!本程序主要用的就是Adodb.Stream,如果你有这个基础
- 创建一个软件包(package)似乎已经足够简单了,也就是在文件目录下搜集一些模块,再加上一个__init__.py文件,对吧?我们很容易看
- 大多数情况下,我们使用 webpack来打包单页应用程序,这个时候只需要配置一个入口,一个模板文件,但也不尽是如此,有时候也会碰到多页面的项
- 本文实例讲述了python实现复制整个目录的方法。分享给大家供大家参考。具体分析如下:python有一个非常好用的目录操作类库shutil,
- pycharm创建新文件自动添加文件头注释背景我们平时在使用pycharm发现有些大神创建一个新文件的时候会自动在文件头添加一些注释,像是有
- 实例如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional
- 首先谈谈它们的共同点吧:它们本质上都是一种对资源的独占锁定,都是由并发引起(如果数据库只有一个session,就谈不上锁定)。接着着重谈谈它
- 本文实例讲述了朴素贝叶斯算法的python实现方法。分享给大家供大家参考。具体实现方法如下:朴素贝叶斯算法优缺点优点:在数据较少的情况下依然
- easy_thumbnails:A powerful, yet easy to implement thumbnailing applica
- 大多数卷积神经网络都是直接通过写一个Model类来定义的,这样写的代码其实是比较好懂的,特别是在魔改网络的时候也很方便。然后也有一些会通过c
- 问题:在Jupyter Notebook中使用args传递参数时出现错误:原始代码:args = parser.parse_args()us
- 新建一个lvm磁盘,这里我建的lv为mydatalv,挂载到了/data下[root@localhost ~]# lvs LV
- 一、搭建项目环境1、创建 RBAC五张表RBAC,即基于角色的权限访问控制(Role-Based Access Control),就是用户通
- 1.Airbus Ship Detection Challengeurl: https://www.kaggle.com/comp
- MySQL和MariaDB的关系MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。MariaDB
- 注:使用的是Python 2.7。一个简单实现class Foo(object): __instance
- python PIL图像处理模块中的ImageDraw类支持各种几何图形的绘制和文本的绘制,如直线、椭圆、弧、弦、多边形以及文字等。下面直接