python之numpy库中数组和矩阵的各种乘法区别(*,dot,multiply)

一文搞定python中的multiply()和dot以及用法 1 * 运算符:当参与计算的类型都为数组时,计算方式为:对应位置相乘,当其中一个类型为矩阵时,则采用矩阵乘法。2 dot运算符:无论参与计算的是数组还是矩阵,计算方式都为:矩阵乘法,3 multiply()运算符:无论参与计算的是数组还是矩阵,计算方式都为:对应位置相乘。数组使用*运算符时,其计算方式为对应的位置相乘,当想使用数组进行矩阵乘法时,可以使用dot实现,而矩阵使用*运算符时,其计算方式矩阵相乘,当想使用矩阵进行对应位置相乘时,可以使用multiply实现。 阅读详情

numpy库中两种对象,数组和矩阵(ndarray,matrix),两者都有三种不同的乘法,分别是 * , dot 和multiply 三种类型。以下分别进行介绍。

1.数组(ndarray)

先不废话,直接上实例:

import numpy as np

a = np.array([[1,2,3]])
b = np.array([(1,2,3), 
              (4,5,6)])
print(type(a),type(b))

print("a=\n",a,"\n")
print("b=\n",b,"\n")
print("a*b=\n",a*b,"\n")
print("a.dot(b.T)=\n",a.dot(b.T),"\n")
print("b.dot(a.T)=\n",b.dot(a.T),"\n")
print("np.multiply(a,b)=\n",np.multiply(a,b),"\n")
print("np.multiply(b,a)=\n",np.multiply(b,a),"\n")

结果如下:

a=
 [[1 2 3]] 

b=
 [[1 2 3]
 [4 5 6]] 

<class 'numpy.ndarray'> <class 'numpy.ndarray'>

a*b=
 [[ 1  4  9]
 [ 4 10 18]] 

a.dot(b.T)=
 [[14 32]] 

b.dot(a.T)=
 [[14]
 [32]] 

np.multiply(a,b)=
 [[ 1  4  9]
 [ 4 10 18]] 

np.multiply(b,a)=
 [[ 1  4  9]
 [ 4 10 18]] 

2.矩阵(matrix)

也不废话,继续上实例:

a = np.mat([[1,2,3]])
b = np.mat([(1,2,3), 
            (4,5,6)])
print(type(a),type(b))

print("a=\n",a,"\n")
print("b=\n",b,"\n")

# print("a*b=\n",a*b,"\n") 注意,此处报错,因为不符合矩阵乘法规则,注[1]
print("a*b.T=\n",a*b.T,"\n")
print("b*a.T=\n",b*a.T,"\n")

print("a.dot(b.T)=\n",a.dot(b.T),"\n")
print("b.dot(a.T)=\n",b.dot(a.T),"\n")
print("np.multiply(a,b)=\n",np.multiply(a,b),"\n")
print("np.multiply(b,a)=\n",np.multiply(b,a),"\n")

注[1]:矩阵相乘应满足矩阵乘法规则,即前矩阵的列数(column)和后矩阵的行数(row)相同时才有意义。

结果如下:

a=
 [[1 2 3]] 

b=
 [[1 2 3]
 [4 5 6]] 

<class 'numpy.matrix'> <class 'numpy.matrix'>

a*b.T=
 [[14 32]] 

b*a.T=
 [[14]
 [32]] 

a.dot(b.T)=
 [[14 32]] 

b.dot(a.T)=
 [[14]
 [32]] 

np.multiply(a,b)=
 [[ 1  4  9]
 [ 4 10 18]] 

np.multiply(b,a)=
 [[ 1  4  9]
 [ 4 10 18]] 

3.总结

如果您比较细心的话,我相信您自己心中已经有了答案,如果您比较懒,您也可以看看我的总结。

类型数组矩阵
*对应位置相乘矩阵乘法[1]

dot

矩阵乘法[1]矩阵乘法[1]
multiply对应位置相乘对应位置相乘

此外,从上表中不难发现,对于数组来说,*和multiply的作用一致。对于矩阵来说,*和dot的作用一致。

换一种说法,dot永远代表矩阵乘法,multiply永远代表对应位置相乘,而 *,对于数组是对应位置相乘,对于矩阵是矩阵乘法。

注[1]:矩阵相乘应满足矩阵乘法规则,即前矩阵的列数(column)和后矩阵的行数(row)相同时才有意义。

Python实现矩阵乘法 函数,接收两个矩阵作为参数,返回它们的乘积矩阵。在函数中,首先获取两个矩阵的行列数,判断它们是否可以相乘,然后创建一个结果矩阵并初始化为0,最后进行三重循环,完成乘积的计算。矩阵乘法在线性代数中是比较重要的一种运算,利用Python语言可以方便地实现两个矩阵的乘积。通过以上代码可以看出,在Python中实现矩阵乘法是一件非常简单的事情。在测试代码中,我们定义了两个矩阵。在上述代码中,我们定义了一个。Python实现矩阵乘法。,并将它们作为参数传入。 阅读详情

相关推荐

方差迭代计算公式

方差迭代计算过程推导术语约定递推公式过程推导 术语约定 (1)En=1n∑i=1nxi E_n =\frac{1}{n} \sum_{i=1}^{n}x_i \tag{1} En​=n1​i=1∑n​xi​(1) (2)F(n)=∑i=1n(x2−En) F(n) = \sum_{i=1}^{n}{(x^2-E_n)} \tag{2} F(n)=i=1∑n​(x2−En​)(2) (3)V(n)...

weixin_44479136的博客 7921

Python:矩阵、数组乘法的三种方式

Python:矩阵、数组乘法的三种方式

懒羊羊的快乐小屋 1611

Netty UDP

UDP是一种无连接的协议,它并不在通信双方之间建立连接,而是直接将数据包从发送端发送到接收端。UDP不保证数据包的可靠传输,也不保证数据包的顺序,因此其传输速度通常比TCP快,且系统开销较小。然而,这也意味着UDP在某些情况下可能会丢失数据包或数据包到达的顺序错乱。

王小工小工历程 2028

numpy矩阵乘法_NumPy矩阵乘法

numpy 矩阵乘法NumPy matrix multiplication can be done by the following three methods. NumPy矩阵乘法可以通过以下三种方法完成。 multiply(): element-wise matrix multiplication. multiple():逐元素矩阵乘法。 matmul(): matrix product o...

从零开始的教程世界 3万+

从零到一:用AXI DataMover在Zynq MPSoC上实现高效DMA传输(附Vitis HLS驱动示例)

本文详细介绍了如何在Xilinx Zynq UltraScale+ MPSoC平台上使用AXI DataMover实现高效的DMA数据传输。通过解析AXI DataMover架构、Vivado工程配置、Vitis HLS驱动开发及性能优化技巧,帮助开发者快速构建高性能数据传输通道,并提供了可直接复用的代码示例。

weixin_42520796的博客 428

ESP32+ST7789 LCD屏实战:5分钟搞定中文显示与图片渲染(附完整代码)

本文提供了一份详细的ESP32驱动ST7789 LCD屏幕的实战指南。通过清晰的SPI硬件连接说明、ESP-IDF框架下的初始化代码,以及图片渲染与中文字库构建的核心算法,帮助开发者快速实现中文显示与图片渲染功能,并附有完整的代码示例和性能优化技巧。

weixin_29189377的博客 440

numpy中"*"、outer、dot、multiply的用法和区别

1、关于 "*" 的用法; "*" 也为对于元素的乘积,但是 "*" 作为乘法运算时,必须满足 numpy 的 broadcasting(广播) 的原则 ,当两个矩阵相乘时,其法则为两矩阵的对应的元素相乘,其用法与multiply相同( 见后介绍 ) 。 例1:矩阵 a*b 相乘,其中 a 为 3*4,b 为 1*4; import numpy as np a = np.arra...

汤姆鱼 3730

termux 安装 rockylinux

往找最新的文件目录,选择ARM版本的image。或者直接查看目录或者国内阿里云镜像,按照cpu架构(安卓9手机一般是aarch64arm最新架构),获取镜像地址,以及checksum里的SHA256信息更新到以下rocky9.sh脚本,如果不需要直接使用即可。

欢迎来到别往的博客 984

【易混区分】 tensor张量 Numpy张量的各种矩阵乘法、点积的函数对比 (dot, multiply,*,@matmul)

我们如果把b看做1行3列的矩阵,则运算不符合运算规则,但是如果看做3行1列的矩阵,则它是正确的,即2*3 × 3 * 1=2 * 1 即最后会输出一维的向量。matmul 是matrix multiply的缩写,专门用于矩阵乘法,需要满足矩阵乘法的运算规则,需要前一个矩阵的列和后一个矩阵的行相等。他们大体相同,有一些小的差异,比如numpy的dot可以实现高维度的矩阵乘法但是torch的dot不可以。,所以需要满足矩阵乘法的运算规则,需要前一个矩阵的列和后一个矩阵的行相等。,此时相当于两个数组的点积。

专注于人工智能的算法与应用 2428

告别电压瓶颈:手把手教你用SVPWM过调制算法提升电机驱动性能(附Simulink仿真)

本文详细介绍了如何利用SVPWM过调制算法提升电机驱动性能,解决电动汽车高速运行时的电压瓶颈问题。通过过调制I区和II区的算法实现细节,包括相角补偿与跳变控制,结合Simulink仿真演示,帮助工程师和研究者平衡电压增益与谐波失真,提升系统效率与动态响应。

weixin_30315723的博客 392

Trae+雪球MCP,化身专业的股票分析师(玩转100个MCP系列第二弹)

大家好呀,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧、经验以及前沿资讯,有兴趣的可以关注我的公众号,一起学习,共同进步。第二弹,使用Trae+雪球MCP,获取股票实时行情,分析股票走向等,写代码间隙看看股票价格,研究研究行情,哈哈。真的很不错呀,最关键的是,足够隐蔽,同事以为你在写代码,实际你在浏览股票行情,哈哈,感兴趣的可以试一下哦。说实话,沧州明珠这只股我算是砸手里了,不过还好买的不多,哈哈。

cpp加油站的专栏 518

numpy中dot()、matmul()以及multiply()的区别

文章目录前文np.dotnp.matmulnp.multiply 前文 简单的说,这三个方法各有各的特点,他们主要是进行Numpy的矩阵乘法的,但是,要知道,矩阵乘法里面也是有区分的,主要分为元素及乘法和矩阵乘积 那现在我们首先来写一下区分 np.dot 函数 语法 作用 备注 dot dot(t1,t2) 若t1、t2均为一维数组,则是普通的内积 结果为一个数 dot dot...

wpf973的博客 5616

DeepSeek+Cline:开启自动化编程新纪元

随着 AI 技术不断进步,编程领域迎来效率变革。DeepSeek 与 Cline 的结合,成为自动化编程的强大工具。DeepSeek 凭借先进的自然语言处理能力,能精准理解编程需求;Cline 作为 VSCode 插件,可实现代码生成、调试、注释等功能的无缝衔接。本文详细阐述二者安装配置、实战操作流程,涵盖从基础代码生成到复杂项目开发的应用技巧,同时解答常见问题,帮助开发者快速掌握这对 “智能搭档”,提升编程效率,解锁自动化编程的无限可能。

邓邓子的博客 6256

Python numpy库中dot()、matmul()、multiply、*、@的异同

Python numpy库中dot()、matmul()、multiply、*、@的异同 被numpy库里矩阵乘法弄糊涂了,尝试做了一份表格来对比差异,代码比较简单就不贴了 主要是不同函数的差异,不涉及到广播机制 运算 用例 .dot() .multiply() .matmul @ *

Frisk_Toby的博客 2532

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python数组对应元素相乘(multiply)、两个矩阵相乘(dot)、星号(*)乘法-Python中数组、矩阵乘法

python数组对应元素相乘(multiply)、两个矩阵相乘(dot)、星号(*)乘法-Python中数组、矩阵乘法

weixin_39490300的博客 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python中numpy库内multiply()、dot()和 * 三种乘法运算的区别小记

首先,导入函数包: import numpy as np 1.np.multiply(): 数组:对应元素位置相乘 矩阵:对应元素位置相乘 示例: A = array([[1,2],[3,4]]) B = array([[1,3],[2,4]])

小羊 4532

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别

为了区分三种乘法运算的规则,具体分析如下:import numpy as np1. np.multiply()函数* 函数作用* 数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致 1.1数组场景A = np.arange(1,5).reshape(2,2) Aarray([[1, 2], [3, 4]]) B = np.arange(0,4).reshape(2,2) Bar

o_Eagle_o 17万+

Numpy中矩阵向量乘法np.dot()及np.multiply()以及*区别

Numpy中的矩阵向量乘法分别是np.dot(a,b)、np.multiply(a,b) 以及*,刚开始接触的时候比较模糊,于是自己整理了一下。先来介绍理论,然后再结合例子深入了解一下。 数组 矩阵 元素乘法 np.multiply(a,b) 或 a*b np.multiply(a,b) 矩阵乘法 np.dot(a,b) np.dot(a,b) 或 a* b 我们可以看到...

kenny's blog 2408

numpy中的矩阵乘法:numpy中运算符* @ mutiply dot的用法

前言 在完成作业的过程中,对multiply函数、*运算符号、dot函数的功能经常混淆。在这里做一个简单的区分,并不一定严谨。每个函数对于数组和矩阵的操作内容也存在差异。 本博客只是针对常见的用法,例如矩阵传播机制并不进行考虑,如果需要透彻理解这些操作,可以转到别的博客学习,这里只做最简单的应用区分。 import numpy as np m = np.array([[1, 2, 3], [4, 5, 6]]) n = np.array([[1, 2, 3], [4, 5, 6]]) print("矩阵m:

Phoenix_ZengHao的博客 4447

Python 中数组、矩阵和元素乘法区别(dot、multiply等)

Python 中数组、矩阵和元素乘法区别(dot,multiply等运算)。

qq_44444503的博客 3828

python中numpy各种乘法区别(*, dot, multiply, einsum)

import numpy as np 1. 星号(*) 1.1 函数作用 对数组相同位置求积, 对矩阵执行标准的矩阵计算。 1.2 函数说明 数组(两个矩阵的大小必须一致): A = np.arange(0,4).reshape(2,2) A array([[0, 1], [2, 3]]) B = np.arange(5,9).reshape(2,2) B array([[5, 6], [7, 8]]) A * B array([.

国家熬夜运动比赛中心 1337

numpy/tensorflow 三种矩阵乘法multiply, matmul和 dot

1 简介 np.multiply是对应元素相乘,np.matmul和np.dot都是矩阵相乘运算,之间等价。 y_pred = [[0.38574776, 0.08795848, 0.83927506], [0.21592768, 0.44453627, 0.10463644], [0.8793516, 0.65118235, 0.5184219 ]] y...

rosefun96的博客 3088

[Numpy]array与matrix在乘法上的不同

[Numpy]array与matrix在乘法上的不同1 Numpy乘法的实现2 上代码(array,matrix在*,dot,multiply上的异同)2.1 定义array和matrix两个矩阵2.2 取array和matrix的第一行2.3 取array和matrix的第一列2.4 array进行乘法运算(*,dot,multiply)2.5 matrix进行乘法运算(*,dot,multip...

kzl_knight的博客 1万+

python Numpy 中的矩阵向量乘法(np.multiply()、np.dot()、np.matmul() 和 星号(*)、@)

总结: 元素乘法:np.multiply(a,b) 矩阵乘法:np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b) 或直接用 a @ b 唯独注意:*,在 np.array 中重载为元素乘法,在 np.matrix 中重载为矩阵乘法! 注意: 对于数组格式的数据,一维、二维数组都可以使用元素、矩阵相乘; 对于矩阵格式的数据,一维矩阵只能进行元素乘法,二维矩阵都可以。 1. 对于 np.array 对象 二维数组 一维数组 元素乘法 用 a*b 或 np.mu

elephant_my的博客 5639

Python矩阵相乘

叉乘就是矩阵的乘法,指矩阵A的第一行乘以矩阵B的第一列,各个元素对应相乘后求和作为第一个元素的值。能够进行叉乘运算的场景:A的行数等于B的列数。矩阵的点乘就是矩阵A和矩阵B各个对应元素的相乘。能够进行点乘运算的场景:①A和B的行向量个数相等;② A和B的列向量的个数相等;③ A和B的行向量和列向量都相等。在matlab里面实现点乘用“.*”,实现叉乘用“*”,非常清晰明了。但是在Python里面实现矩阵相乘时经常会报错,原因是在Python里面向量和矩阵的概念和数学里面的概念有点差异。

Dfreedom.的博客 3万+

【python】np.dot()、np.multiply()、np.matmul()方法以及*和@运算符的用法总结

1、np.dot() 2、@ 3、np.multiply() 4、*

敲代码的quant的博客 2万+
上一篇: Algorithms,4th(算法) IntelliJ上路指南(Windows)
下一篇: 浏览器阻止页面自动跳转,查看已下架笔记本的介绍页
FFSVIP
博客等级 码龄7年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值