NumPy 数组操作 numpy.broadcast
正如之前所见,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]]