On Tue, Apr 29, 2008 at 4:41 PM, Anne Archibald <[EMAIL PROTECTED]>
wrote:

> Timothy Hochberg has proposed a generalization of the matrix mechanism
> to support manipulating arrays of linear algebra objects. For example,
> one might have an array of matrices one wants to apply to an array of
> vectors, to yield an array of vectors:
>
> In [88]: A = np.repeat(np.eye(3)[np.newaxis,...],2,axis=0)
>
> In [89]: A
> Out[89]:
> array([[[ 1.,  0.,  0.],
>        [ 0.,  1.,  0.],
>        [ 0.,  0.,  1.]],
>
>       [[ 1.,  0.,  0.],
>        [ 0.,  1.,  0.],
>        [ 0.,  0.,  1.]]])
>
> In [90]: V = np.array([[1,0,0],[0,1,0]])
>
> Currently, it is very clumsy to handle this kind of situation even
> with arrays, keeping track of dimensions by hand. For example if one
> wants to multiply A by V "elementwise", one cannot simply use dot:
>

Let A have dimensions LxMxN and b dimensions LxN, then sum(A*b[:,newaxis,:],
axis=-1) will do the trick.

Example:

In [1]: A = ones((2,2,2))

In [2]: b = array([[1,2],[3,4]])

In [3]: A*b[:,newaxis,:]
Out[3]:
array([[[ 1.,  2.],
        [ 1.,  2.]],

       [[ 3.,  4.],
        [ 3.,  4.]]])

In [4]: sum(A*b[:,newaxis,:], axis=-1)
Out[4]:
array([[ 3.,  3.],
       [ 7.,  7.]])

Chuck




Chuck
_______________________________________________
Numpy-discussion mailing list
[email protected]
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to