[Numpy-discussion] broacasting question

Thomas K Gamble tkgamble@windstream....
Thu Jun 30 12:32:22 CDT 2011

I'm trying to convert some IDL code to python/numpy and i'm having some 
trouble understanding the rules for boradcasting during some operations.

given the following arrays:
a = array((2048,3577), dtype=float)
b = array((256,25088), dtype=float)
c = array((2048,3136), dtype=float)
d = array((2048,3136), dtype=float)

a = b * c + d

In IDL, the computation is done without complaint and all array sizes are 
preserved.  In ptyhon I get a value error concerning broadcasting.  I can 
force it to work by taking slices, but the resulting size would be a = 
(256x3136) rather than (2048x3577).  I admit that I don't understand IDL (or 
python to be honest) well enough to know how it handles this to be able to 
replicate the result properly.  Does it only operate on the smallest 
dimensions ignoring the larger indices leaving their values unchanged?  Can 
someone explain this to me?

Thomas K. Gamble tkgamble@windstream.net

More information about the NumPy-Discussion mailing list