averaging matrix efficiently

Posted by user248237 on Stack Overflow See other posts from Stack Overflow or by user248237
Published on 2010-06-04T23:04:40Z Indexed on 2010/06/09 5:52 UTC
Read the original article Hit count: 171

Filed under:
|
|

in Python, given an n x p matrix, e.g. 4 x 4, how can I return a matrix that's 4 x 2 that simply averages the first two columns and the last two columns for all 4 rows of the matrix?

e.g. given:

a = array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])

return a matrix that has the average of a[:, 0] and a[:, 1] and the average of a[:, 2] and a[:, 3]. I want this to work for an arbitrary matrix of n x p assuming that the number of columns I am averaging of n is obviously evenly divisible by n.

let me clarify: for each row, I want to take the average of the first two columns, then the average of the last two columns. So it would be:

1 + 2 / 2, 3 + 4 / 2 <- row 1 of new matrix 5 + 6 / 2, 7 + 8 / 2 <- row 2 of new matrix, etc.

which should yield a 4 by 2 matrix rather than 4 x 4.

thanks.

© Stack Overflow or respective owner

Related posts about python

Related posts about numpy