python中广播机制
时间: 2023-11-06 22:53:26 浏览: 95
Python中的广播机制是指在数组运算中,当两个数组的维度不完全匹配时,自动将较小的数组复制多份,使得两个数组的维度完全匹配,从而进行元素级别的运算。
广播机制的规则如下:
1. 如果两个数组的维度不相等,则将维度较小的数组的形状在最左边填充1,直到形状一致。
2. 如果两个数组在某个维度上的大小不一致,但其中一个数组的大小为1,则可以在该维度上进行广播。
3. 如果任何一个维度上的大小既不相等也不为1,则会引发广播错误。
下面是一个简单的示例代码来说明广播机制:
```python
import numpy as np
# 创建一个形状为(3, 3)的二维数组
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a)
# 输出:
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
# 创建一个形状为(3,)的一维数组
b = np.array([10, 20, 30])
print(b)
# 输出:
# [10 20 30]
# 使用广播机制进行元素级别的加法运算
c = a + b
print(c)
# 输出:
# [[11 22 33]
# [14 25 36]
# [17 28 39]]
```
在这个示例中,数组 `a` 的形状为 (3, 3),数组 `b` 的形状为 (3,)。根据广播机制的规则,数组 `b` 在维度上进行了填充,变成了形状为 (1, 3) 的数组。然后,数组 `a` 和数组 `b` 形状一致,可以进行元素级别的加法运算,得到结果数组 `c`。
这就是 Python 中的广播机制,它简化了数组运算的代码编写,提高了运算效率。
阅读全文