[Numpy-discussion] Broadcasting rules (Ticket 76).

Zachary Pincus zpincus at stanford.edu
Mon Apr 24 10:57:04 CDT 2006


> It would be very difficult to change the other broadcasting  
> behavior which was inherited from Numeric, however.  The only  
> possibility I see is adding new useful functionality where Numeric  
> used to raise an error.

Well, there is one case that I run into all of the time where the  
broadcasting rules seem a bit constraining:

In [1]: import numpy
In [2]: numpy.__version__
'0.9.7.2335'
In [3]: a = numpy.ones([50, 100])
In [4]: means = a.mean(axis = 1)
In [5]: print a.shape, means.shape
(50, 100) (50,)
In [5]: a / means
ValueError: index objects are not broadcastable to a single shape
In [6]: (a.transpose() / means).transpose()
#this works

It's obvious why this doesn't work due to the broadcasting rules, but  
it also seems (to me, in this case at least) obvious what I am trying  
to do. I don't think I'm suggesting that the broadcasting rules be  
changed to allow matching-from-the-right in the general case, since  
that seems likely to make the broadcasting rules even more difficult  
to grok. But there do seem to be a lot of (....transpose 
() ... ).transpose() bits in my code.

Is there anything to be done here? I presume not, but I just wanted  
to mention it.

Zach




More information about the Numpy-discussion mailing list