Double Summation in Python

Limited Intelligence picture Limited Intelligence · Oct 9, 2013 · Viewed 7.5k times · Source

I am trying to write a code to conduct a double summation (see pic)

enter image description here

in which; M is the subjects, N is the Trials, Yijt is the measured wave form data (3d array)

so far I have; Given Y is the data arranged as Y[subjects, trials, time]

# ranges:
I = len(Y)
J = len(Y[0])

Y_i_vals = 0

for i in range(M):
    for j in range(N):
        Y_i_vals = Y_i_vals +Y[i][j]
Yt = (1.0/(M*N)) * Y_i_vals

this doesnt seem the most effective way to do this, nor am i certain it is giving the correct result.

Answer

YXD picture YXD · Oct 9, 2013

If you're using numpy just do

np.mean(Y)

Also, it's good to add sample input and expected output data to your question.

If you want means for each t you can do np.mean(np.mean(a, axis=0), axis=0) , or as noted by @ophion you can shorten this to np.mean(a, axis=(0, 1)) in newer (1.71 and on) versions of NumPy.