首页 > 其他分享 >10. NumPy广播机制

10. NumPy广播机制

时间:2022-09-26 10:11:26浏览次数:52  
标签:10 运算 形状 广播 数组 np NumPy

1. 前言

NumPy 中的广播机制(Broadcast)旨在解决不同形状数组之间的算术运算问题。我们知道,如果进行运算的两个数组形状完全相同,它们直接可以做相应的运算。示例如下:

import numpy as np
a = np.array([0.1,0.2,0.3,0.4])
b = np.array([10,20,30,40])
c = a * b
print(c)

输出结果如下:

[ 1.  4.  9. 16.]

但如果两个形状不同的数组呢?它们之间就不能做算术运算了吗?当然不是!为了保持数组形状相同,NumPy 设计了一种广播机制,这种机制的核心是对形状较小的数组,在横向或纵向上进行一定次数的重复,使其与形状较大的数组拥有相同的维度。

当进行运算的两个数组形状不同,Numpy 会自动触发广播机制。示例如下:

import numpy as np
a = np.array([[ 0, 0, 0],
           [10,10,10],
           [20,20,20],
           [30,30,30]])
#b数组与a数组形状不同
b = np.array([1,2,3])
print(a + b)

输出结果为:

[[ 1  2  3]
[11 12 13]
[21 22 23]
[31 32 33]]

下图 1 :通过数组 a 、b 的运算展示了广播机制的实现流程。

Numpy数组广播机制
图1:Numpy 数组广播机制


4x3 的二维 a 数组 与 1x3 的一维 b 数组相加,本质上可以理解为 b 数组在纵向上向下拓展 3 次(将第一行重复 3 次),从而生成与 a 数组相同形状的数组,之后再与 a 数组进行运算。

标签:10,运算,形状,广播,数组,np,NumPy
From: https://www.cnblogs.com/jiajunling/p/16729934.html

相关文章

  • 慢查询 MySQL 定位优化技巧,从10s优化到300ms
    文章目录如何定位并优化慢查询SQL?如何使用慢查询日志?慢查询例子演示,新手都能看懂查询语句慢怎么办?explain带你分析sql执行计划当主键索引、唯一索引、普通索引都存在......
  • 9. NumPy高级索引
    1.前言NumPy与Python的内置序列相比,它提供了更多的索引方式。除了在《Numpy切片和索引》一节用到索引方式外,在NumPy中还可以使用高级索引方式,比如整数数组索引、布......
  • C++程序实现100—999中所有的水仙花数输出
    ​提示:如果三位数ABC满足ABC=A3+B3+C3,则称其为水仙花数废话不多说,直接上代码,注意看注释要对自己负责#define_CRT_SECURE_NO_WARNINGS#include<iostream>usingna......
  • WEB自动化-10-Page Object 模型
    10PageObject模型10.1概述  在针对一个WEB页面编写自动化测试用例时,需要引用页面中的元素(数据)才能进行操作(动作)并显示出页面内容。如果编写的测试用例是直接针对......
  • Win10环境下安装jdk1.8
    1.找到jdk的版本①访问官网:https://www.oracle.com/②作者百度网盘(jdk1.8):链接:https://pan.baidu.com/s/1SwZw4hN5szVjGkI5qO22sQ提取码:gu7t2.随着提示安装即可3.选......
  • 10个前端小知识-尾调用优化
    前端面试基础知识题1.什么是尾调用优化和尾递归?尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。functionf(x){returng(x);......
  • pta甲级1005-1009+cf每日水题
    1005:简单模拟,数组打表1#include<bits/stdc++.h>2usingnamespacestd;3#defineintlonglong4#defineIOSios_base::sync_with_stdio(0);cin.tie(0);cout.......
  • pta 1003
    https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376朴素dijkstra+pre记录前驱+dfs输出前驱朴素dijkstra,升级版是天梯赛l2-1紧急救援1......
  • 甲级1004
    https://pintia.cn/problem-sets/994805342720868352/problems/994805521431773184普通静态数遍历1#include<bits/stdc++.h>//dfs2usingnamespacestd;3#de......
  • MySQL数据库安装保姆级教程及1045错误和2058问题解决
    使用Mysql的zip压缩包解压版,下载之后需进行一定的配置,才能使用它。下面对Mysql压缩包版的安装方法进行详细的描述,如有疑问或错误,望及时反馈。首先,mysql的官方下载地址......