Block mean computation.

Python source code: block_mean.py

from __future__ import division
import numpy as np


def block_mean(vector):
    if vector.size % 100 != 0:
        raise ValueError('Invalid size.')
    nblocks = vector.size // 100
    return np.array([np.mean(vector[i*100:(i+1)*100])
                     for i in xrange(nblocks)])


def block_mean_fast(vector):
    if vector.size % 100 != 0:
        raise ValueError('Invalid size.')
    return np.mean(vector.reshape((-1, 100)), axis=-1)


N = 30

vector = np.random.random_sample(100 * N)
print block_mean(vector)
print block_mean_fast(vector)
Université Paris Diderot / Paris 7 Laboratoire APC UnivEarthS' LabEx