Python中的元素相乘与矩阵相乘(附Demo)

目录

  • 前言
  • 1. 元素相乘
  • 2. 矩阵相乘
  • 3. 差异

前言

深度学习的矩阵相乘引发的Bug,由此深刻学习这方面的相关知识

在Python中,特别是使用NumPy库时,元素相乘和矩阵相乘是处理数组和矩阵时的常见操作

1. 元素相乘

元素相乘是指对两个相同形状的数组中的对应元素逐个相乘

multiply()函数可以实现这一操作,运算符*也可以用于元素相乘

import numpy as np

# 定义两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 元素相乘
result = np.multiply(a, b)
print("元素相乘的结果(使用multiply()):", result)

截图如下:

在这里插入图片描述

import numpy as np

# 定义两个数组
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])

# 元素相乘
result = a * b
print("元素相乘的结果(使用*运算符):\n", result)

截图如下:

在这里插入图片描述

2. 矩阵相乘

矩阵相乘遵循线性代数中的矩阵乘法规则,即结果矩阵的第(i, j)个元素是第一个矩阵的第i行与第二个矩阵的第j列对应元素的乘积之和

使用dot()函数、matmul()函数以及@运算符来进行矩阵相乘

dot():

import numpy as np

# 定义两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 矩阵相乘
result = np.dot(A, B)
print("矩阵相乘的结果(使用dot()):\n", result)

matmul():

import numpy as np

# 定义两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 矩阵相乘
result = np.matmul(A, B)
print("矩阵相乘的结果(使用matmul()):\n", result)

@:

import numpy as np

# 定义两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 矩阵相乘
result = A @ B
print("矩阵相乘的结果(使用@运算符):\n", result)

这三者截图都如下:

在这里插入图片描述

3. 差异

功能函数/运算符描述
元素相乘multiply()NumPy中的元素级乘法函数,接受任意数量的数组参数,并将它们的对应元素逐个相乘

*运算符也用于元素级乘法,其行为与multiply()函数相同
矩阵相乘dot()用于计算两个数组的点积(内积)。如果传入的参数是一维数组,则计算的是它们的标量积。如果传入的是二维数组(矩阵),则计算的是矩阵乘法

matmul()用于执行矩阵乘法。不支持一维数组的点积,而是将它们视为行或列向量进行矩阵相乘

@运算符Python 3.5及更高版本引入的矩阵乘法运算符。用于执行矩阵乘法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/673711.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows端口本地转发

参考 微软Netsh interface portproxy 命令 界面端口代理的 Netsh 命令 | Microsoft Learn 使用Windows系统的portproxy功能配置端口转发 使用Windows系统的portproxy功能配置端口转发-阿里云帮助中心 (aliyun.com) 将来自0.0.0.0地址对端口35623的访问转发到172.18.106.16…

Python中degrees怎么用

degrees() 函数可以将弧度转换为角度。 语法 以下是 degrees() 方法的语法: import math math.degrees(x) 注意:degrees() 是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。 参数 x -- 一个数值。 返…

苹果设备mac/Paid/phone 下载使用anki记忆卡

安卓的设备直接可以下 如果你这个,如图。 首先点击下列网址,下载,在里面搜索anki记忆卡 https://www.i4.cn 下载好,打开应用软件爱思助手。搜索anki记忆卡,下载,然后用数据线一端连接电脑一端连接手机或者…

【C++练级之路】【Lv.23】C++11——可变参数模板、lambda表达式和函数包装器

快乐的流畅:个人主页 个人专栏:《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 一、可变参数模板1.1 参数包的概念1.2 参数包的展开1.3 emplace系列 二、lambda表达式2.1 lambda的格式2.2 捕…

二级指针简单介绍

我们之前学习的&#xff1a;变量的地址是存入指针变量中的&#xff0c;然而指针变量也是变量&#xff0c;是变量就有地址&#xff0c;那么指针变量的地址存放在哪里 &#xff1f; 这也就是二级指针 #include<stdio.h> int main() {int a10;int*p&a;int**pp&p;re…

假指纹与活体指纹检测

目录 1. 假指纹简介 2. 假指纹制作流程 3. 活体指纹检测 4. 活体指纹检测竞赛 1. 假指纹简介 随着科学技术的发展&#xff0c;指纹技术以各种各样的形式进入了我们的生活。在大多数情况下&#xff0c;指纹识别应用于移动设备和桌面设备解决方案&#xff0c;以提供安全方便的…

Linux命令篇(一):文件管理部分

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 1、cat命令常用参…

2.3Docker部署java工程

2.3Docker部署java工程 1.导入jar包 2.在Docker部署jdk&#xff08;容器名为myjdk17&#xff09; 3.修改jar包名 mv 原包名 新包名4. 配置启动脚本 Dockerfile是一个文本文件&#xff0c;其中包含了构建 Docker 镜像所需的一系列步骤和指令。通过编写 Dockerfile 文件&…

华为交换机的基本配置

实验拓扑&#xff1a; 实验目的&#xff1a;认识二层交换机和二层交换技术的工作原理&#xff1b;认识三层交换和三层交换技术。 三层功能简而言之就是了具有路由的功能&#xff0c;设备可以充当网关和路由器。 实验要求&#xff1a;公司的两个部门用vlan进行划分&#xff0c…

Vitis HLS 学习笔记--HLS流水线类型

目录 1. 简介 2. 优缺点对比 2.1 Stalled Pipeline 2.2 Free-Running/Flushable Pipeline 2.3 Flushable Pipeline 3. 设置方法 4. FRP的特殊优势 5. 总结 1. 简介 Vitis HLS 会自动选择正确的流水线样式&#xff0c;用于流水打拍函数或循环。 停滞的流水线&#xff…

MaxKey本地运行实战指南

MaxKey 本地运行总结 概述开发环境准备 主页传送门 &#xff1a; &#x1f4c0; 传送 概述 MaxKey单点登录认证系统&#xff0c;谐音为马克思的钥匙寓意是最大钥匙&#xff0c;是业界领先的IAM-IDaas身份管理和认证产品&#xff1b;支持OAuth 2.x/OpenID Connect、SAML 2.0、J…

Layui2.5.6树形表格TreeTable使用

1、问题概述? Layui2.5.6的树形表格-TreeTable终于用明白了,步骤详细,提供源码下载。 如果你使用的是Layui2.8+版本,那么点个赞,赶紧去官网看吧,官网更行了。 更新地址:树表组件 treeTable - Layui 文档 最近在项目中需要使用到树形表格,用来显示菜单的层级关系,当…

集成Google Authenticator实现多因素认证(MFA)

目录 参考1、应用背景2、多因素认证3、谷歌google authenticator集成用法3.1、原理3.2、 MFA绑定3.2.1、 用户输入用户名密码登录3.2.2、检查是否已经绑定MFA&#xff08;检查数据库是否保存该用户的google secret&#xff09;3.2.3、谷歌身份证认证器扫描绑定3.2.4、手动测试验…

016、集合_命令

集合(set)保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。如图集合user:1:follow包含着"it"、“music”、“his”、"sports"四个元素,一个集合最多可以存储2(32)-1个元…

基于web的网上村委会业务办理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;基础数据管理&#xff0c;办事记录管理&#xff0c;办事申请管理&#xff0c;党员发展管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;补贴活动通知…

14.1 Go语言代码格式、gofmt工具、配置编辑器、命名约定

1. Go语言代码格式 代码格式指的是在语法正确的前提下&#xff0c;源代码的书写和组织风格。比如什么时候缩进&#xff0c;什么时候换行&#xff0c;什么时候加空格&#xff0c;表示块边界的花括号是跟上一行放在一起还是自己独占一行等等。这些看似无关紧要的细节其实问题颇多…

LabVIEW齿轮调制故障检测系统

LabVIEW齿轮调制故障检测系统 概述 开发了一种基于LabVIEW平台的齿轮调制故障检测系统&#xff0c;实现齿轮在恶劣工作条件下的故障振动信号的实时在线检测。系统利用LabVIEW的强大图形编程能力&#xff0c;结合Hilbert包络解调技术&#xff0c;对齿轮的振动信号进行精确分析…

Vector - CAPL - XCP介绍_04

目录 xcpGetCalPage & OnXcpGetCalPage xcpUpload & OnXcpUoad 代码示例 xcpSendRaw & OnXcpSendRaw 代码示例 xcpGetCalPage & OnXcpGetCalPage 功能&#xff1a;如果XCP从设备支持校准数据页面切换&#xff0c;则该命令获取当前页面和访问模式。 回调返回…

数据在计算机内的表示和存储

目录 一.C语言中强制类型转换 二.数据的存储方式 1.大小端模式 2.边界对齐 一.C语言中强制类型转换 1.无符号数与有符号数&#xff1a;不改变数据内容&#xff0c;只是改变了计算机的解释方式 例如下图&#xff0c;短整型转为无符号短整型再赋值给y&#xff0c;yx1110 11…

打靶笔记w1r3s.v1.0

打靶笔记w1r3s.v1.0 nmap扫描与分析 主机发现 nmap -sn 192.168.218.0/24 历史版本为-sP(已经被放弃) n 不进行端口扫描192.168.218.155 创建文件夹保存端口信息 指定最低1万速率扫描所有端口 nmap -sT --min-rate 10000 -p- 192.168.218.155 nmapscan/ports-sS SYN扫描是快…