广播(Broadcast)是对不同形状(shape)的数组进行数值计算的方式。

广播规则:

  • 如果两个数组的维度数不相同,那么小维度数组的形状将会在最左边补1;
  • 如果两个数组的形状在任何一个维度都不匹配,那么数组的形状会沿着维度为1的维度扩展以匹配另外一个数组的形状;
  • 如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于1,那么会引出异常。

In [1]: import numpy as np

#相同形状数组数值计算时,数组内元素逐个加减
In [2]: a = np.array([0,1,2])
In [3]: b = np.array([0,1,2]) In [4]: a + b
Out[4]: array([0, 2, 4]) #5扩展成[5,5,5]与a形状一致后分别相加
In [5]: a + 5
Out[5]: array([5, 6, 7]) #x从(1,3)、y从(3,1)都扩展成(3,3)后相加
In [7]: x = np.arange(3)
In [8]: y = np.arange(3)[:,np.newaxis] In [9]: x
Out[9]: array([0, 1, 2])
In [10]: y
Out[10]:
array([[0],
[1],
[2]]) In [11]: x + y
Out[11]:
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])

广播的归一化应用

#x为(10,3)数组
In [12]: x = np.random.random((10,3))
In [13]: x
Out[13]:
array([[0.05404783, 0.76923374, 0.65853154],
[0.08907194, 0.01900223, 0.04000283],
[0.72521795, 0.09186224, 0.67457589],
[0.41700931, 0.42471439, 0.94748451],
[0.95439046, 0.96458199, 0.01966024],
[0.31656808, 0.74726154, 0.22988047],
[0.70578412, 0.04238469, 0.66419186],
[0.1228215 , 0.09629365, 0.09550091],
[0.51172621, 0.96489282, 0.32432765],
[0.69833444, 0.19646535, 0.1527003 ]]) In [14]: x_mean = np.mean(x,axis=0)
In [15]: x_mean
Out[15]: array([0.45949718, 0.43166926, 0.38068562]) #x_mean从(1,3)扩展成(10,3)
In [16]: x_centered = x-x_mean #归一化值(实际值-平均值)
In [17]: x_centered
Out[17]:
array([[-0.40544935, 0.33756448, 0.27784592],
[-0.37042524, -0.41266704, -0.34068279],
[ 0.26572077, -0.33980702, 0.29389027],
[-0.04248787, -0.00695488, 0.56679889],
[ 0.49489328, 0.53291272, -0.36102538],
[-0.1429291 , 0.31559228, -0.15080515],
[ 0.24628693, -0.38928457, 0.28350624],
[-0.33667569, -0.33537562, -0.28518471],
[ 0.05222903, 0.53322355, -0.05635797],
[ 0.23883725, -0.23520391, -0.22798532]]) In [18]: x_centered.mean(0)
Out[18]: array([-1.11022302e-17, -4.44089210e-17, 2.77555756e-17])

Numpy广播功能的更多相关文章

  1. [开发技巧]·Numpy广播机制的深入理解与应用

    [开发技巧]·Numpy广播机制的深入理解与应用 1.问题描述 我们在使用Numpy进行数据的处理时,经常会用到广播机制来简化操作,例如在所有元素都加上一个数,或者在某些纬度上作相同的操作.广播机制很 ...

  2. NumPy 广播(Broadcast)

    NumPy 广播(Broadcast) 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行. 如果两个数组 a 和 b ...

  3. numpy广播机制,取特定行、特定列的元素 的高级索引取法

    numpy广播机制,取特定行.特定列的元素 的高级索引取法 enter description here enter description here

  4. 初探numpy——广播和数组操作函数

    numpy广播(Broadcast) 若数组a,b形状相同,即a.shape==b.shape,那么a+b,a*b的结果就是对应数位的运算 import numpy as np a=np.array( ...

  5. 快来,Boom 3D广播功能还能这样用

    Boom 3D不仅为用户提供了包括3D立体音效.古典音乐音效在内的多种音效增强功能,而且还为用户提供了广播功能.该广播功能不仅涵盖了国内广播节目,而且还涵盖了国际广播节目. Boom 3D的广播功能还 ...

  6. NumPy 广播机制(Broadcasting)

    一.何为广播机制 a.广播机制是Numpy(开源数值计算工具,用于处理大型矩阵)里一种向量化数组操作方法. b.Numpy的通用函数(Universal functions) 中要求输入的两个数组sh ...

  7. numpy广播

    (m,n)   +,-,*,/  (m,1) 先将(m,1)复制n次,构成(m,n)矩阵,然后再进行+,-,*,/运算 (m,n)   +,-,*,/  (1,n) 先将 (1,n)复制m次,构成(m ...

  8. 7、numpy——广播

    1.广播的引出 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行. 如果两个数组 a 和 b 形状相同,即满足 a. ...

  9. 吴裕雄--天生自然Numpy库学习笔记:NumPy 广播(Broadcast)

    广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行. 如果两个数组 a 和 b 形状相同,即满足 a.shape == ...

  10. Numpy 广播(Broadcast)

    广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行. 如果两个数组 a 和 b 形状相同,即满足a.shape == b ...

随机推荐

  1. 【Azure K8S | AKS】在中国区AKS上遇见ImagePullBackOff时的替代方案

    问题描述 在AKS集群中部署calico时候,遇见 ImagePullBackOff 问题. 在创建POD calico-typha-horizontal-autoscale 时候遇见拉取镜像失败问题 ...

  2. 【Azure 环境】标准版 Logic App 如何查看 Workflow的执行成功数和失败数的指标呢?

    问题描述 在Azure中创建逻辑应用(Logic App),有两种计划类型.一是消费型,另一种是标准型. 在消费型的Logic App Metrics页面中,我们可以看见Workflow的执行成功数指 ...

  3. BIGO 的数据管理与应用实践

    本文首发于 Nebula Graph Community 公众号 本文整理自 BIGO 在 nMeetp 上的主题分享,主要介绍 BIGO 过去一年在数据管理建设方面的理解和探索.而 BIGO 数据管 ...

  4. 《A Hierarchical Framework for Relation Extraction with Reinforcement Learning》论文阅读笔记

    代码 原文地址 摘要 现有的大多数方法在确定关系类型之前,需要先识别出所有的实体,这样就忽略了实体提及和关系类型之间的交互.本文提出了一种新颖的联合抽取范式,把相关实体看作是关系的参数( 首先检测一个 ...

  5. CentOS 设置系统时间与网络时间同步

    CentOS 设置系统时间与网络时间同步 一.Linux的时间分为(两种) System Clock(系统时间) 指当前Linux Kernel中的时间 Real Time Clock (硬件时间,简 ...

  6. Redis系列:RDB内存快照提供持久化能力

    ★ Redis24篇集合 1 介绍 从上一篇的 <深刻理解高性能Redis的本质> 中可以知道, 我们经常在数据库层上加一层缓存(如Redis),来保证数据的访问效率. 这样性能确实也有了 ...

  7. 照片也能说话了?嘴型表情全同步,AI数字人时代要来了

    SadTalker是一款先进的人工智能模型,它通过从音频中学习生成3D运动系数,并使用全新的三维面部渲染器来生成头部运动,只需传入一张照片和一段音频,就能生成高质量的AI数字人视频 工作原理 1.显式 ...

  8. 2.String类能被继承吗

    2.String类能被继承吗 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的. 拓展 String的底层是一个用private和final修饰的char数组.fina ...

  9. redis三主三从详细搭建过程

    搭建Redis三主三从集群的详细步骤如下: 准备环境: 确保你有六台服务器或虚拟机,每台服务器上都已经安装了Redis.这些服务器将用于搭建三主三从的Redis集群. 确保所有服务器之间的网络连接正常 ...

  10. github拉项目显示timeOut

    参考:https://blog.csdn.net/qq_37424778/article/details/132018804 自己尝试在github上拉项目,但是报错LibreSSL SSL_read ...