python中@运算符和*运算符在矩阵乘法中的区别与作用

这篇具有很好参考价值的文章主要介绍了python中@运算符和*运算符在矩阵乘法中的区别与作用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  我们在看python程序时,经常可以看到@运算符和*运算符,其中@运算符在传统python中通常是作为装饰器使用的。但是在Python 3.5之后,它又具备了矩阵乘法运算的功能。下面使用示例来对比这两个运算符对矩阵运算的影响:
  导入用到numpy包:

import numpy as np

  创建一个维度为2×3×3的数组a,结果如下图所示:

a=np.arange(1,10).reshape(3,3)
a=np.expand_dims(a,0).repeat(2,0)
print(a)

python @ 乘法,python,矩阵,python,线性代数
  再创建一个维度为2×3×3的数组b,结果如下图所示:

b=np.eye(3)
b=np.expand_dims(b,0).repeat(2,0)
print(b)

python @ 乘法,python,矩阵,python,线性代数
  下面,我们执行a*b,可以看到,输出为:
python @ 乘法,python,矩阵,python,线性代数
  这表明,运算符*在矩阵运算中的功能是逐元素的乘法(称为Hadamard积(Hadamard product,数学符号⊙))。
  下面,我们执行a@b,可以看到,输出为:

python @ 乘法,python,矩阵,python,线性代数
  这表明,运算符@在矩阵运算中的功能是矩阵乘法。也即,在矩阵乘法中,b矩阵右乘的作用是交换被乘矩阵的1、2两列,结果即是。其实@运算符和numpy的matmul是一样的,如下图所示:

python @ 乘法,python,矩阵,python,线性代数
  只是当引入了@运算符后,我们可以直接简单使用@运算符来实现矩阵乘法了。还一点需要注意的是,在numpy的矩阵乘法中,默认的乘法是不对第一个维度进行操作的,这点也可以从上面的结果中看出(输出结果的第一维都一样)。文章来源地址https://www.toymoban.com/news/detail-520230.html

到了这里,关于python中@运算符和*运算符在矩阵乘法中的区别与作用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python中的8种运算符

    ✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座又一座的高山,那样的人生才是我想要的。这一马平川,一眼见底的活,我不想要,我的人

    2023年04月19日
    浏览(27)
  • python中的运算符号含义,python基本运算符的操作

    本篇文章给大家谈谈python的运算符号有哪些类型,以及python各运算符号的功能说明,希望对各位有所帮助,不要忘了收藏本站喔。 1.算数运算符(最常见的)     标准算数运算符(加减乘除)     取余运算符     幂运算符 2.赋值运算符 3.比较运算符 4.布尔运算符 5.位运算符

    2024年02月13日
    浏览(45)
  • SQL 算术运算符:加法、减法、乘法、除法和取模的用法

    存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活和通用。 创建存储过程的语法如下: 执行存储过程的语法如下:

    2024年02月05日
    浏览(46)
  • Python中的海象运算符“:=”使用方法详解

    海象运算符(walrus operator)是 Python 3.8 中引入的一种新的语法,其使用方法如下:         其中,expression 是一个任意的表达式,而 variable 则是一个变量名。该运算符允许将表达式的结果赋值给变量,并且在同一行中进行这两个操作。         在某些情况下,使用海象

    2024年02月05日
    浏览(33)
  • Java运算符作用及解析

    Java运算符是对变量或者常量进行操作的符号。以下是Java中常见运算符的解析: 赋值运算符:如“=”,将右侧的值赋给左侧的变量。 一元运算符:如“+”“-”“!”,用于对变量进行操作。 算术运算符:如“+”“-”“*”“/”“%”,用于执行基本的数学运算。 比较运算符

    2024年01月18日
    浏览(31)
  • Python中的三元运算符:简洁高效的条件表达式

    什么是三元运算符 三元运算符是一种简洁高效的条件表达式,用于根据条件的真假来返回不同的值。它是一种特殊的运算符,由三个操作数组成,形式为 [结果为真的值] if [条件] else [结果为假的值] 。 Python中的三元运算符语法 Python中的三元运算符的语法如下: 三元运算符的

    2024年01月19日
    浏览(47)
  • Python 中的 `and`, `or`, `not` 运算符:介绍与使用

    Python 中的逻辑运算符 and , or , not 主要用于进行布尔运算。这些运算符非常有用,特别是在条件判断和循环中。 and 运算符用于检查两个(或多个)表达式是否都为 True 。 值得注意的是, and 运算符是短路的,即如果第一个表达式为 False ,则不会检查后面的表达式。 or 运算符

    2024年02月03日
    浏览(42)
  • C++11 使用using定义别名(替代typedef)::作用域运算符

    typedef  一切合法的变量的定义可以转换为类型   using:    示例如下:      使用 typedef 重定义类型是很方便的,但它也有一些限制,比如,无法重定义一个模板。   现在,在 C++11 中终于出现了可以重定义一个模板的语法。 C的写法/c++写法   using与模板结合:       usin

    2024年02月08日
    浏览(23)
  • MATLAB数据类型和运算符+矩阵创建

    个人主页: 学习前端的小z 个人专栏: HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 🌹1.1 特殊常量 MATLAB有些固定的变量,称为特殊常量。这些特殊常量具有特定的意义,用户在定义变量名时应避免使用。 在

    2024年04月15日
    浏览(39)
  • 【C++实验】运算符重载(两个矩阵相加)

    运算符重载 概念 对已有的运算符赋予新的含义,用一个运算符表示不同功能的运算,从而适用于用户自定义类型的数据(比如复数、矩阵等)之间的运算 运算符重载 方法 定义一个重载运算符函数,在需要时系统自动调用该函数,完成相应的运算。 运算符重载实质上是函数

    2024年02月02日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包