NumPy中,有时两个不同形状的数组之间需要进行运算。
考虑下面的例子。
示例
两个形状相同的数组相乘:
import
输出
[ 2 8 18 32 50 72 98]
示例
两个形状不相同的数组相乘:
import
输出
ValueError: operands could not be broadcast together with shapes (7,) (8,)
上面的例子中,两个数组的形状不同,不能相乘。
NumPy中,要在两个不同形状数组之间进行运算,Python会尝试使用广播机制,广播需要符合一定条件,如果不能广播,则报错。
广播的作用是,把较小数组的形状扩展成与较大数组一致,以便进行运算。
广播的规则
广播机制遵循下列规则:
- 如果两个数的维度数不同,那么小维度数组的形状将会在最左边补1。
- 如果两个数组的形状在任何一个维度都不匹配,那么数组的形状会沿着维度为1的维度扩展,以匹配另外一个数组的形状。
- 如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于1,那么会引发异常。
让我们看两个个广播的例子。
示例
import
输出
[[1. 2. 3.]
[1. 2. 3.]]
示例
两个数组均需要广播的示例:
import
输出
[[0 1 2]
[1 2 3]
[2 3 4]]
![c8eb91fa05d46350fe98de8a8bc535c9.png](https://i-blog.csdnimg.cn/blog_migrate/9718d26af4729648c1a16b1a6aee53af.jpeg)
Python Numpy 教程 | 奇客谷教程www.qikegu.com
章节
- Numpy 介绍
- Numpy 安装
- NumPy ndarray
- NumPy 数据类型
- NumPy 数组创建
- NumPy 基于已有数据创建数组
- NumPy 基于数值区间创建数组
- NumPy 数组切片
- NumPy 广播
- NumPy 数组迭代
- NumPy 位运算
- NumPy 字符串函数
- NumPy 数学函数
- NumPy 统计函数
- NumPy 排序、查找、计数
- NumPy 副本和视图
- NumPy 矩阵库函数
- NumPy 线性代数