Numpy的广播机制(Broadcast)

Broadcast是numpy对不同形状的数组进行数值计算的方式,对数组的运算通常在相应的元素上进行。

如果两个数组a和b形状相同,即满足a.shape==b.shape,那么a*b的结果就是a与b对应位相乘,这要求维数相等,且维度的长度相等。

import numpy as np

a=np.array([1,2,3])
b=np.array([4,5,6])
print('a*b:',a*b)
#a*b: [ 4 10 18]

文档原文:In order to Broadcast, the size of the trailing axes for both arrays in an operation must either be the same size or one of them must be one.

也就是说,如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符,或其中的一方的长度为1,则认为它们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行。

数组维度不同,后缘维度的轴长相符
import numpy as np

arr1 = np.array([[0, 0, 0],[1, 1, 1],[2, 2, 2], [3, 3, 3]])  #arr1.shape = (4,3)
arr2 = np.array([1, 2, 3])    #arr2.shape = (3,)
print(arr1+arr2)
image
数组维度相同,其中有个轴为1
import numpy as np

arr1 = np.array([[0, 0, 0],[1, 1, 1],[2, 2, 2], [3, 3, 3]])  #arr1.shape = (4,3)
arr2 = np.array([[1],[2],[3],[4]])    #arr2.shape = (4, 1)
print(arr1+arr2)
image
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 10,553评论 0 18
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 12,972评论 0 13
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 4,993评论 0 5
  • 先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutoria...
    舒map阅读 7,436评论 1 13
  • 前言 numpy是支持 Python语言的数值计算扩充库,其拥有强大的高维度数组处理与矩阵运算能力。除此之外,nu...
    开发者也阅读 8,505评论 0 35