[Numpy-discussion] sum of two arrays with different shape?

Colin J. Williams cjw at sympatico.ca
Wed Dec 20 17:11:24 CST 2006


zhang yunfeng wrote:
> Hi, I'm newbie to Numpy.
> 
> When reading tutorials at
> http://www.scipy.org/Tentative_NumPy_Tutorial 
> <http://www.scipy.org/Tentative_NumPy_Tutorial>, I found a snippet about
> addition of two arrays with different shape, Does it make sense? If
> array shapes are not same, why it doesn't throw out an error?
> 
I'm not sure what the rules are but this example throws an error, which 
it should.
[Dbg]>>> x= N.array([1, 2, 3])
[Dbg]>>> y= x+[1, 2, 3, 4]
Traceback (most recent call last):
   File "<interactive input>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape
[Dbg]>>>
> see the code below (taken from the above webpage)
> array a.shape is (4,) and y.shape is (3,4)  and a+y ?
> 
> -------------------------------------------
>  >>> y = arange(12)
>  >>> y
> array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
>  >>> y.shape = 3,4              # does not modify the total number of 
> elements
>  >>> y
> array([[ 0,  1,  2,  3],
>       [ 4,  5,  6,  7],
>       [ 8,  9, 10, 11]])
> 
> It is possible to operate with arrays of diferent dimensions as long as
> they fit well.
>  >>> 3*a                                # multiply each element of a by 3
> array([ 30,  60,  90, 120])
>  >>> a+y                                # sum a to each row of y
> array([[10, 21, 32, 43],
>       [14, 25, 36, 47],
>       [18, 29, 40, 51]])
> --------------------------------------------
> 
This seems a reasonable operation.

Colin W.
> -- 
> http://my.opera.com/zhangyunfeng
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion



More information about the Numpy-discussion mailing list