Source

ml-class / mean-norm.py

#!/usr/bin/env python

import numpy as np

def mean_norm(m):
    ma = np.ma.masked_array(m, np.isnan(m))
    avg = np.mean(ma, axis=1).filled().reshape((m.shape[0], 1))
    return m - avg

a = np.array([
    [5, 5, 0, 0],
    [5, np.nan, np.nan, 0],
    [np.nan, 4, 0, np.nan],
    [0, 0, 5, 4],
    [0, 0, 5, 0],
])

print(a)
mn = mean_norm(a)
print(mn)