# HG changeset patch # User Nicolas Saunier # Date 1467992489 14400 # Node ID 15a82ebc62c4c9d8cb1e363254bc2bd8b01c68f0 # Parent 2c7b4e6a32dd8ead14ecddc3c844c33ee868391e utils for sparse matrix diff -r 2c7b4e6a32dd -r 15a82ebc62c4 python/utils.py --- a/python/utils.py Wed Jul 06 18:05:03 2016 -0400 +++ b/python/utils.py Fri Jul 08 11:41:29 2016 -0400 @@ -7,7 +7,8 @@ from math import sqrt, ceil, floor from scipy.stats import kruskal, shapiro from scipy.spatial import distance -from numpy import zeros, array, exp, sum as npsum, int as npint, arange, cumsum, median, isnan, ones, convolve, dtype, isnan, NaN, mean, ma, isinf +from scipy.sparse import dok_matrix +from numpy import zeros, array, exp, sum as npsum, int as npint, arange, cumsum, median, isnan, ones, convolve, dtype, isnan, NaN, mean, ma, isinf, savez, load as npload datetimeFormat = "%Y-%m-%d %H:%M:%S" @@ -483,6 +484,17 @@ out.close() return result +def saveDokMatrix(filename, m): + 'Saves a dok_matrix using savez' + savez(filename, shape = m.shape, keys = m.keys(), values = m.values()) + +def loadDokMatrix(filename): + 'Loads a dok_matrix saved using the above saveDokMatrix' + data = npload(filename) + m = dok_matrix(tuple(data['shape'])) + for k, v in zip(data['keys'], data['values']): + m[tuple(k)] = v + return m ######################### # regression analysis using statsmodels (and pandas)