numpy.broadcast

numpy.broadcast(arys1, arys2, ..., arysN)

Функция numpy.broadcast() создает объект, который имитирует транслирование массивов.

Параметры:
arys1, arys2, ..., arysN - подобные массивам объекты
Любые объекты которые могут быть преобразованы в массивы NumPy.
Возвращает:
broadcast object - объект транслирования
Объект, который имитирует транслирование входных массивов относительно друг друга. Он может использоваться как итератор, который сохраняет свойства формы и размерности входных массивов.
Смотрите так же: broadcast_arrays, broadcast_to

Примеры

>>> a = [1]
>>> b = [[2, 2], [3, 3]]
>>> np.broadcast(a, b)
<numpy.broadcast object at 0x97cb150>
>>>
>>> list(np.broadcast(a, b))
[(1, 2), (1, 2), (1, 3), (1, 3)]
>>>
>>> #  Данный объект можно использовать как обычный итератор
... a = np.array([[1], [2], [3]])
>>> b = np.array([1, 2, 3])
>>>
>>> list(np.broadcast(a, b))
[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
>>>
>>> iter = np.broadcast(a, b)
>>>
>>> [i[0] +i [1] for i in iter]
[2, 3, 4, 3, 4, 5, 4, 5, 6]
>>> 
>>> iter = np.broadcast(a, b)
>>>
>>> iter.shape
(3, 3)
>>> 
>>> z = np.zeros(iter.shape)
>>> z
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
>>> 
>>> z.flat = [i[0] + i[1] for i in iter]
>>> z
array([[ 2.,  3.,  4.],
       [ 3.,  4.,  5.],
       [ 4.,  5.,  6.]])
>>> 
>>> a + b     #  Результат автоматического транслирования:
array([[2, 3, 4],
       [3, 4, 5],
       [4, 5, 6]])