# [Numpy-discussion] How to sum weighted matrices

qubax@g... qubax@g...
Mon Mar 7 11:53:11 CST 2011

```for your problem, you can do:

----------------------------

import numpy as np

weights = np.array([1,2])

matrix1 = np.ones((2,3))
matrix2 = 2*np.ones((2,3))

matrices = np.array([matrix1,matrix2])

weighted_sum = np.tensordot(weights, matrices, (0,0))

--------------------------

On Mon, Mar 07, 2011 at 06:16:15AM -0600, shu wei wrote:
>    Hello all,
>
>    I am new to python and numpy.
>    My question is how to sum up N weighted matrices.
>    For example w=[1,2] (N=2 case)
>    m1=[1 2 3,
>           3 4 5]
>
>    m2=[3 4 5,
>           4 5 6]
>    I want to get a matrix Y=w[1]*m1+w[2]*m2 by using a loop.
>
>    My original problem is like this
>    X=[1 2 3,
>         3 4 5,
>         4 5 6]
>
>    a1=[1 2 3]  1st row of X
>    m1=a1'*a1 a matirx
>    a2=[3 4 5] 2nd row of X
>    m2=a2'*a2
>    a3=[ 4 5 6] 3rd row of X
>    m3=a3'*a3
>
>    I want to get Y1=w[1]*m1+w[2]*m2
>                          Y2=w[1]*m2+w[2]*m3
>    So basically it is rolling and to sum up the weighted matries
>    I have a big X, the rolling window is relatively small.
>
>    I tried to use
>
>    sq=np.array([x[i].reshape(-1,1)*x[i] for i in np.arange(0,len(x)]) #
>    s=len(x)
>    m=np.array([sq[i:i+t] for i in np.arange(0,s-t+1)]) # t is the len(w)
>
>    then I was stuck, I tried to use a loop somethig like
>    Y=np.array([np.sum(w[i]*m[j,i],axis=0) for i in np.arange(0,t)] )
>    Any suggestion is welcome.
>
>    sue

> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

--
There are two things children should get
from their parents: roots and wings.

The king who needs to remind his people of his rank, is no king.

A beggar's mistake harms no one but the beggar. A king's mistake,
however, harms everyone but the king. Too often, the measure of
power lies not in the number who obey your will, but in the number