使用 Python 中的 NumPy 数组进行广播


我们知道,不同数组之间的算术运算通常在数组具有相等的尺寸或者需要特定尺寸时发生。但在某些情况下,我们可以删除不等的尺寸并对其应用算术运算,方法是通过在数组的形状中填充带有较小 ndim 的数组,并在其形状中填充前置的“1”。因此,基本上广播和数组意味着将其形状更改为任何所需的形状。

数组广播的规则

  • 具有比另一个数组较小 ndim 的数组在其形状中前置“1”。

  • 输出形状的每个维度中的尺寸是该维度中输入尺寸的最大值。

  • 如果输入的尺寸与输出尺寸匹配或其值恰好为 1,则可以使用输入进行计算。

  • 如果输入的尺寸为 1,则该维度中的第一个数据项用于沿该维度进行的所有计算。

示例

下面的示例演示了如何使用 numpy 数组在数组操作期间进行广播。

 实时演示

import numpy as np
a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]])
b = np.array([1.0,2.0,3.0])

print 'First array:'
print a
print '\n'

print 'Second array:'
print b
print '\n'

print 'First Array + Second Array'
print a + b

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

运行上面的代码会产生以下结果 -

First array:
[
   [ 0. 0. 0.]
   [ 10. 10. 10.]
   [ 20. 20. 20.]
   [ 30. 30. 30.]
]

Second array:
[ 1. 2. 3.]

First Array + Second Array
[
   [ 1. 2. 3.]
   [ 11. 12. 13.]
   [ 21. 22. 23.]
   [ 31. 32. 33.]
]

更新日期:2020 年 7 月 22 日

159 次浏览

开启您的职业生涯

完成此课程以获得认证

开始
广告