;; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffer.
def zca_whiten(X, EPS = 1e-5):
"""
https://gist.github.com/iborko/5d9c2c16004ce8b926ea
X: numpy 2d array
input data, rows are data points, columns are features
Returns: ZCA whitened 2d array
"""
assert(X.ndim == 2)
mu = np.mean(X)
# covariance matrix
cov = np.dot(X.T, X)
# d = (lambda1, lambda2, ..., lambdaN)
d, E = np.linalg.eigh(cov)
# D = diag(d) ^ (-1/2)
D = np.diag(1. / np.sqrt(d + EPS))
# W_zca = E * D * E.T
whMat = np.dot(np.dot(E, D), E.T)
X_white = np.dot(X, whMat)
return X_white, mu, np.linalg.pinv(whMat), whMat
def dowhitefunc(X,whMat):
# % Apres avoir utilise la fonction whiten.m -> recuperer la matrice whMat
# % Pour l'appliquer sur les donnees
Xwh2 = (X-np.mean(X)*np.diag(X.shape))*whMat;
return Xwh2
def decode_stim(S1, S2, S12):
if __name__=='__main__':
import argparse
parser=argparse.ArgumentParser(description=
"""
runs the apparent motion protocol
""",
formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument("-s", "--SAVE",help="save the figures as SVG", action="store_true")
parser.add_argument("-f", "--file",help="filename for saving", default='data/example_data.npy')
args = parser.parse_args()
# we perform one experiment with the default and we store the figs
args2, t, X, Fe_aff1, Fe1, Fi1, muVn1,\
Fe_aff2, Fe2, Fi2, muVn2, Fe_aff3, Fe3, Fi3, muVn3 = np.load(args.file)