2011-12-19 22:57:07 +08:00
|
|
|
import numpy as np
|
|
|
|
|
import scipy.sparse as sp
|
|
|
|
|
from numpy.testing import assert_array_almost_equal
|
|
|
|
|
|
|
|
|
|
from sklearn.datasets import make_classification
|
2012-05-21 11:55:34 +08:00
|
|
|
from sklearn.utils.sparsefuncs import mean_variance_axis0
|
2011-12-19 22:57:07 +08:00
|
|
|
|
2011-12-24 02:12:52 +08:00
|
|
|
|
2011-12-19 22:57:07 +08:00
|
|
|
def test_mean_variance_axis0():
|
|
|
|
|
X, _ = make_classification(5, 4, random_state=0)
|
2011-12-19 23:21:04 +08:00
|
|
|
# Sparsify the array a little bit
|
2011-12-20 00:18:19 +08:00
|
|
|
X[0, 0] = 0
|
|
|
|
|
X[2, 1] = 0
|
|
|
|
|
X[4, 3] = 0
|
2012-05-21 11:58:32 +08:00
|
|
|
X_lil = sp.lil_matrix(X)
|
|
|
|
|
X_lil[1, 0] = 0
|
2011-12-20 00:20:26 +08:00
|
|
|
X[1, 0] = 0
|
2012-05-21 11:58:32 +08:00
|
|
|
X_csr = sp.csr_matrix(X_lil)
|
|
|
|
|
|
2011-12-19 22:57:07 +08:00
|
|
|
X_means, X_vars = mean_variance_axis0(X_csr)
|
2011-12-20 00:18:19 +08:00
|
|
|
assert_array_almost_equal(X_means, np.mean(X, axis=0))
|
|
|
|
|
assert_array_almost_equal(X_vars, np.var(X, axis=0))
|
2012-05-21 11:55:34 +08:00
|
|
|
|
2012-05-21 11:58:32 +08:00
|
|
|
X_csc = sp.csc_matrix(X_lil)
|
2012-05-07 17:36:39 +08:00
|
|
|
X_means, X_vars = mean_variance_axis0(X_csc)
|
2012-05-04 19:38:39 +08:00
|
|
|
|
|
|
|
|
assert_array_almost_equal(X_means, np.mean(X, axis=0))
|
|
|
|
|
assert_array_almost_equal(X_vars, np.var(X, axis=0))
|