python中矩阵、数组使用@的含义

 更新时间:2026年08月12日 09:33:51   作者:Nefu_lyh  
本文详细解析了Python中@运算符在不同数据结构(数组和矩阵)下的使用方法及运算规则,包括矩阵乘法、数组乘法的具体实现与示例,感兴趣的可以了解一下

1.当@连接的两项为数组时,有两种计算形式:

(1)符合矩阵运算维度:(m×n)维×(n×y)维 =(m×y)维

运算方式与矩阵相乘类似:对应位置相乘再相加,运算期间类类型都为数组
例子见下:

a = np.arange(12).reshape(3,4)
b = np.arange(12).reshape(4,3)
print(a)
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''
print(b)
'''
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]
'''
c = a @ b
print(c)
'''
[[ 42  48  54]
 [114 136 158]
 [186 224 262]]
'''
#<class 'numpy.ndarray'>

(2)不符合矩阵运算维度:(m×n)维×(1×n)维 =(1×m)维

运算方式为:第一个数组的第1行与第二个数组对应位置相乘相加后,得到结果的第1位,第一个数组的第2行与第二个数组对应位置相乘相加后,得到结果的第2位…
例子见下:

a = np.arange(12).reshape(3,4)
b = np.arange(4)
print(a)
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''
print(b)
#[0 1 2 3]
c = a @ b
print(c)
'''
[14 38 62]
'''

2.当@连接的两项为矩阵时

维度必须符合矩阵运算:(m×n)维×(n×y)维 =(m×y)维

a = np.mat(np.arange(12).reshape(3,4)) #<class 'numpy.matrix'>
b = np.mat(np.arange(4).reshape(3,4))
print(a)
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''
print(b)
'''
[[0]
 [1]
 [2]
 [3]]
'''
c = a @ b
print(c)
'''
[[14]
 [38]
 [62]]
'''

3.当@连接的两项一项为矩阵,一项为数组时

运算维度维度:(m×n)维×(1×n)维 =(1×m)维

运算方式为:第一个数组的第1行与第二个数组对应位置相乘相加后,得到最终结果的第1位,第一个数组的第2行与第二个数组对应位置相乘相加后,得到最终结果的第2位…
运算结果为矩阵

a = np.mat(np.arange(12).reshape(3,4))
b = np.arange(4)
c = a @ b
print(a)
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''
print(b)
'''
[0 1 2 3]
'''
print(c)
#[[14 38 62]]

到此这篇关于python中矩阵、数组使用@的含义的文章就介绍到这了,更多相关python矩阵、数组使用@内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 如何做一个识别率百分百的OCR

    python 如何做一个识别率百分百的OCR

    最近在做游戏自动化(测试),也就是游戏脚本了。主要有以下几个需求识别率百分百、速度要快、模型要小,本文就来着手实现它
    2021-05-05
  • Linux使用python调用串口<Ubuntu>方式

    Linux使用python调用串口<Ubuntu>方式

    本文介绍在Ubuntu上使用Python和pyserial库进行串口通信的方法,涵盖安装库、编写收发代码及注意事项,适合初学者入门
    2026-05-05
  • python利用paramiko实现交换机巡检的示例

    python利用paramiko实现交换机巡检的示例

    这篇文章主要介绍了python利用paramiko实现交换机巡检,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • Python实现日期判断和加减操作详解

    Python实现日期判断和加减操作详解

    这篇文章主要介绍了如何利用Python实现日期的判断,以及对日期的加减操作,文中的示例代码对我们学习或工作有一定的价值,需要的可以参考一下
    2022-01-01
  • 基于python实现蓝牙通信代码实例

    基于python实现蓝牙通信代码实例

    这篇文章主要介绍了基于python实现蓝牙通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python对象转JSON字符串的方法

    Python对象转JSON字符串的方法

    这篇文章主要介绍了Python对象转JSON字符串的方法,涉及Python基于json模块实现json转换的实现技巧,非常简便易懂,需要的朋友可以参考下
    2016-04-04
  • Python3开发环境搭建详细教程

    Python3开发环境搭建详细教程

    这篇文章主要介绍了Python3开发环境搭建详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 用Python实现筛选文件脚本的方法

    用Python实现筛选文件脚本的方法

    今天小编就为大家分享一篇用Python实现筛选文件脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 基于Django快速集成Echarts代码示例

    基于Django快速集成Echarts代码示例

    这篇文章主要介绍了基于Django快速集成Echarts代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Python实现复杂的事件驱动架构

    Python实现复杂的事件驱动架构

    事件驱动架构(Event-Driven Architecture, EDA)是一种软件设计模式,它基于事件的产生、传播和处理进行系统的构建,下面我们来看看如何在 Python 中实现复杂的事件驱动架构吧
    2024-12-12

最新评论