广播机制

Numpy的Universal functions中要求输入的数组shape是一致的,当数组的shape不相等
时,则会使用广播机制。不过,调整数组使得shape一样,需要满足一定的规则,否则将
出错。这些规则可归纳为以下4条。

1)让所有输入数组都向其中shape最长的数组看齐,不足的部分则通过在前面加1补
齐,如:

a:2×3×2
b:3×2

则b向a看齐,在b的前面加1,变为:1×3×2

2)输出数组的shape是输入数组shape的各个轴上的最大值;
3)如果输入数组的某个轴和输出数组的对应轴的长度相同或者某个轴的长度为1时,
这个数组能被用来计算,否则出错;
4)当输入数组的某个轴的长度为1时,沿着此轴运算时都用(或复制)此轴上的第一
组值。

广播在整个Numpy中用于决定如何处理形状迥异的数组,涉及的算术运算包括
(+,-,*,/…)。这些规则说得很严谨,但不直观,下面我们结合图形与代码来进一步
说明。

目的:A+B,其中A为4×1矩阵,B为一维向量(3,)。
要相加,需要做如下处理:
·根据规则1,B需要向看齐,把B变为(1,3)
·根据规则2,输出的结果为各个轴上的最大值,即输出结果应该为(4,3)矩阵,那
么A如何由(4,1)变为(4,3)矩阵?B又如何由(1,3)变为(4,3)矩阵?
·根据规则4,用此轴上的第一组值(要主要区分是哪个轴),进行复制(但在实际处
理中不是真正复制,否则太耗内存,而是采用其他对象如ogrid对象,进行网格处理)即
可,详细处理过程如图1-4所示。

图1-4 Numpy广播规则示意图

import numpy as np
A=np.arange(0,40,10).reshape(4,1)
B=np.arange(0,3)
print("A矩阵的形状:{},B矩阵的形状:{}".format(A.shape,B.shape))
C=A+B
print("C矩阵的形状:{}".format(C.shape))
print(C)

运行结果

矩阵的形状:(4, 1),B矩阵的形状:(3,)
C矩阵的形状:(4, 3)
[[ 0  1  2][10 11 12][20 21 22][30 31 32]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/95029.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/95029.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/95029.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

reuse: for booting my spring project with mvn in Windows command line

boot.bat echo off setlocal enabledelayedexpansion:: 定义帮助信息 set HELP_MSG使用方法: %0 [选项,可选-m,-j,-h] [参数...]:: 默认启动方式为 mvn set MODEmvn set ARGS:: 解析命令行参数 :parse_args if "%~1""" goto end_parseif "%~1"&q…

NodeJs学习日志(4):路由合并_环境配置_常用文件目录

路由合并_环境配置_常用文件目录 路由合并 // routes/routes.js const express require(express); const router express.Router();// 合并子路由 var indexRouter require(../routes/index); var usersRouter require(../routes/users);router.use(/, indexRouter); route…

✨TRAE SOLO + Holopix AI | 轻松实现 “虚假广告“-转[特殊字符]割草小游戏

引言 😶 两周前 (7.21) Trae-国际版 正式发布「SOLO」模式,需要 Pro 账户,邀请码一度 “难求”,海鲜市场还有人挂出 500块的 “天价”,这都能炒?我是无法理解的🤷‍♀️,目前一个月…

redis集群-本地环境

* Linux 本地集群:3主3从yum install -y gccyum install -y wgetyum install -y vimwget http://download.redis.io/releases/redis-7.2.5.tar.gztar -zxvf redis-7.2.5.tar.gzcd redis-7.2.5/makemake PREFIX/usr/local/redis install# 配置系统环境变量vim /etc/p…

海关 瑞数 失信企业 逆向 分析 后缀 rs

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!部分python代码headers {Accept: appl…

用 Postman 的 Tests 脚本,这行代码断言接口返回,自动化测试省一半事

本文聚焦 Postman 的 Tests 脚本在接口自动化测试中的核心作用,阐述如何通过编写 Tests 脚本实现接口返回的自动断言,从而大幅提升测试效率。文中详细介绍了 Tests 脚本的基础语法、常用断言方法、实战案例及优化技巧,涵盖从简单响应状态码校…

7、西门子PLC基础术语:数据单位、存储区域、寻址方式、字节序

一、数据单位(数据长度类型)术语名称位数所占字节说明Bit位1 bit1/8 Byte最小数据单位(0或1)BByte 字节8 bit1 Byte字节单位WWord 字16 bit2 Byte通常用于整数、状态字等DWDouble Word 双字32 bit4 Byte常用于浮点、双整数 1双字 …

大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案

现代企业运营中,重复性任务的自动化处理已成为提升组织效率的核心需求。从基础数据录入到复杂工作流管理,企业持续寻求技术创新来降低人工成本、减少操作错误,并将人力资源重新配置到更具价值的战略性工作中。大型动作模型(Large …

部署Web UI自动化测试平台:SeleniumFlaskTester

1. Python环境准备 推荐Python3.11,可从https://www.python.org/downloads/release/python-3119/ 下载,见下图: 安装后,cmd命令行查看版本:python --version 2. 下载源码包 从 https://gitee.com/ligaopan/SeleniumFlaskTester…

计算机网络:到底什么是可变长子网掩码VLSM?

VLSM 是可变长子网掩码,对应的是 FLSM(固定长子网掩码) FLSM 中,子网掩码是固定的,比如一个 C 类地址用 255.255.255.128(/25)划分,每个子网只能有 126 台主机,但如果实际需要的主机数不同,比如有的子网需要 20 台,有的需要 50 台,FLSM 会导致地址浪费。所以 VLSM …

太极行业观察:从传统技艺到数字化转型的演变|创客匠人

太极拳作为中华传统文化的重要组成部分,在全球范围内具有广泛影响力。目前全球太极习练者已超过一亿人,仅中国大陆就有约千万固定练习者。每年与太极相关的赛事、培训、教学、养生旅游等活动,形成了数百亿元的市场规模。尽管如此,…

Kafka服务端NIO操作原理解析(二)

Kafka系列文章 基于Kafka2.1解读Producer原理 基于Kafka2.1解读Consumer原理 Kafka服务端NIO操作原理解析(一) 文章目录Kafka系列文章前言一、基本认知二、Acceptor的主体流程2.1 run方法源码2.2 acceptNewConnections方法源码2.3 主体逻辑流程示意图三…

当服务器负载过高时该怎么办?

当服务器出现负载过高时,要对内存、网络等硬件设备进行查看,其中CPU是重中之重,对CPU使用率进行查看和了解,确定哪些进程占用了大量CPU资源,如果是某个应用程序进程导致CPU高负载,需分析该程序是否存在算法…

跨境电商增长突围:多维变局下的战略重构与技术赋能

在全球化商业浪潮与数字技术迭代的双重驱动下,跨境电商行业正经历前所未有的变革。平台规则的动态调整、市场需求的非线性波动、技术工具的持续革新,共同构成了复杂多变的竞争格局。对于卖家而言,如何在不确定性中锚定增长路径,已…

软件运行时 ffmpeg.dll 丢失怎么办?从原因排查到完美修复的完整方案

在计算机的软件生态系统中,ffmpeg.dll 扮演着一个至关重要却又常被普通用户忽视的角色。这个看似普通的文件,实际上是众多多媒体相关软件能够正常运行的基石之一。当你的视频剪辑软件突然无法导入特定格式的视频,或者心爱的游戏在启动时弹出令…

Axure 11

下载 Axure RP - UX Prototypes, Specifications, and Diagrams in One Tool 激活 Axure RP11 2025-8-7日亲测有效: 49bb9513c40444b9bcc3ce49a7a022f9 汉化 Axure Rp 11 安装、汉化、授权_axure11汉化包-CSDN博客 中文社区 https://www.axure.com.cn/

论文阅读:User Behavior Simulation with Large Language Model-based Agents

https://dl.acm.org/doi/pdf/10.1145/3708985 https://www.doubao.com/chat/15495707526837250 Advances and Challenges in Foundation Agents–Memory调研 论文翻译 基于大型语言模型代理的用户行为模拟 摘要 在推荐系统、社交网络等以人为中心的应用中,高质…

基于ECharts的智慧社区数据可视化

引言数据可视化是现代Web应用的重要组成部分,它能将复杂的数据以直观的图形方式呈现,帮助用户快速理解数据背后的信息。本文将介绍如何使用ECharts库实现智慧社区住户数据的可视化展示,包括柱状图和饼图两种常见图表类型的实现与优化。技术栈…

Qt 综述:从基础到一般应用

摘要: Qt,作为久经考验的跨平台C开发框架,以其强大的功能、丰富的类库和灵活的机制,在桌面应用、嵌入式系统、网络编程等领域占据重要地位。本文将深入解析Qt的核心技术体系,涵盖基础架构、核心机制、UI开发、外观定制…

基于PyTorch一文讲清楚损失函数与激活函数并配上详细的图文讲解

PyTorch损失函数与激活函数 目录 激活函数详解损失函数详解实战案例性能优化技巧 激活函数详解 1. 什么是激活函数? 激活函数是神经网络中的关键组件,它决定了神经元是否应该被激活。没有激活函数,神经网络就只是线性变换的堆叠&#xf…