如前所述,NumPy具有内置的广播支持,此功能模仿广播机制,它返回一个封装了将一个数组广播到另一个数组的输出对象 。
该函数将两个数组作为输入参数。以下示例说明了其用法。
import numpy as np x = np.array([[1], [2], [3]]) y = np.array([4, 5, 6]) # tobroadcast x against y b = np.broadcast(x,y) # it has an iterator property, a tuple of iterators along self's "components." print 'Broadcast x against y:' r,c = b.iters print r.next(), c.next() print r.next(), c.next() print '\n' # shape attribute returns the shape of broadcast object print 'The shape of the broadcast object:' print b.shape print '\n' # to add x and y manually using broadcast b = np.broadcast(x,y) c = np.empty(b.shape) print 'Add x and y manually using broadcast:' print c.shape print '\n' c.flat = [u + v for (u,v) in b] print 'After applying the flat function:' print c print '\n' # same result obtained by NumPy's built-in broadcasting support print 'The summation of x and y:' print x + y
其输出如下-
Broadcast x against y: 1 4 1 5 The shape of the broadcast object: (3, 3) Add x and y manually using broadcast: (3, 3) After applying the flat function: [[ 5. 6. 7.] [ 6. 7. 8.] [ 7. 8. 9.]] The summation of x and y: [[5 6 7] [6 7 8] [7 8 9]]
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)