博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
numpy中不同维度矩阵的加减和卷积操作
阅读量:4153 次
发布时间:2019-05-25

本文共 2187 字,大约阅读时间需要 7 分钟。

目录

项目中经常遇到不同维度矩阵的加减操作,规则如下:

(1)进行加减操作的两个矩阵最后一个维度要相同或其中一个矩阵的最后一个维度元素数为1

a=np.array([[1,2],[3,4]])print(a.shape)b=np.array([[[7,8],[8,9]],           [[7,8],[8,9]]])print(b.shape)print(b-a,(b-a).shape)print('==============11111===============')a=np.array([[1,2],[3,4]])print(a.shape)b=np.array([[[[7,8],[8,9]]]])print(b.shape)print(b-a,(b-a).shape)print('==============22222===============')#最后一个维度的元素数分别为2和3,报错a=np.array([[1,2,3],[3,4,5]])print(a.shape)b=np.array([[[7,8],[8,9]],           [[7,8],[8,9]]])print(b.shape)try:    print(b-a,(b-a).shape)except Exception as e:    print(e)print('=============33333================')#其中一个矩阵的最后一个维度元素数为1,不报错a=np.array([[1],[3]])print(a.shape)b=np.array([[[7,8,9,10],[8,9,10,11]]])print(b.shape)try:    print(b-a,(b-a).shape)except Exception as e:    print(e)print('============44444=================')#其中一个矩阵的最后一个维度元素数为1,不报错a=np.array([[1,2,3],[3,4,5]])print(a.shape)b=np.array([[[7],[8]]])print(b.shape)try:    print(b-a,(b-a).shape)except Exception as e:    print(e)print('============55555=================')#最后一个维度的元素数分别为4和2,报错a=np.array([[1,2],[3,4]])print(a.shape)b=np.array([[[7,8,9,10],[8,9,10,11]]])print(b.shape)try:    print(b-a,(b-a).shape)except Exception as e:    print(e)print('============66666=================')

输出:

在这里插入图片描述

(2)结果矩阵维度

当两个矩阵最后一个维度元素数相同时,加减完后矩阵的形状和高维矩阵的相同;当不同时(其中一个矩阵的最后一维元素数为1),矩阵维度和高维度矩阵相同,但最后一维的元素数和原来两个矩阵中最后一维元素数较多的矩阵相同。

(3)两个矩阵卷积操作的规则与加减类似

a=np.array([[1,2,3],[4,5,6]])b=np.array([[1,2],[2,3]])try:    print(a*b,(b-a).shape)except Exception as e:    print(e)print('============11111============')a=np.array([[1,2,3],[4,5,6]])b=np.array([1,2])try:    print(a*b,(b-a).shape)except Exception as e:    print(e)print('============22222============')a=np.array([[1,2,3,4],[4,5,6,7]])b=np.array([1,2])try:    print(a*b,(b-a).shape)except Exception as e:    print(e)print('============33333============')a=np.array([[1,2,3,4],[4,5,6,7]])b=np.array([2])try:    print(a*b,(b-a).shape)except Exception as e:    print(e)print('============44444============')a=np.array([[1,1,1,1],[2,2,2,2]])b=np.array([[2,4,6,8],[1,3,5,7]])try:    print(a*b,(b-a).shape)except Exception as e:    print(e)print('============55555============')

输出:

在这里插入图片描述

转载地址:http://nxrti.baihongyu.com/

你可能感兴趣的文章
实验5-3 break语句和continue语句
查看>>
实验5-4 循环的嵌套
查看>>
实验5-5 循环的合并
查看>>
实验5-6 do-while循环结构
查看>>
实验5-7 程序调试入门
查看>>
实验5-8 综合练习
查看>>
第2章实验补充C语言中如何计算补码
查看>>
深入入门正则表达式(java) - 命名捕获
查看>>
使用bash解析xml
查看>>
android系统提供的常用命令行工具
查看>>
【Python基础1】变量和字符串定义
查看>>
【Python基础2】python字符串方法及格式设置
查看>>
【Python】random生成随机数
查看>>
【Python基础3】数字类型与常用运算
查看>>
【Python基础4】for循环、while循环与if分支
查看>>
【Python基础6】格式化字符串
查看>>
【Python基础7】字典
查看>>
【Python基础8】函数参数
查看>>
【Python基础9】浅谈深浅拷贝及变量赋值
查看>>
Jenkins定制一个具有筛选功能的列表视图
查看>>