|
From: <jd...@us...> - 2009-11-03 20:52:08
|
Revision: 7927
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7927&view=rev
Author: jdh2358
Date: 2009-11-03 20:51:55 +0000 (Tue, 03 Nov 2009)
Log Message:
-----------
added pca test
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/__init__.py
trunk/matplotlib/lib/matplotlib/mlab.py
Added Paths:
-----------
trunk/matplotlib/lib/matplotlib/tests/test_mlab.py
Modified: trunk/matplotlib/lib/matplotlib/__init__.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/__init__.py 2009-11-03 20:27:23 UTC (rev 7926)
+++ trunk/matplotlib/lib/matplotlib/__init__.py 2009-11-03 20:51:55 UTC (rev 7927)
@@ -905,6 +905,7 @@
'matplotlib.tests.test_backend_svg',
'matplotlib.tests.test_basic',
'matplotlib.tests.test_cbook',
+ 'matplotlib.tests.test_mlab',
'matplotlib.tests.test_transforms',
'matplotlib.tests.test_axes',
'matplotlib.tests.test_dates',
Modified: trunk/matplotlib/lib/matplotlib/mlab.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mlab.py 2009-11-03 20:27:23 UTC (rev 7926)
+++ trunk/matplotlib/lib/matplotlib/mlab.py 2009-11-03 20:51:55 UTC (rev 7927)
@@ -761,7 +761,7 @@
"""
WARNING: this function is deprecated -- please see class PCA instead
-
+
Compute the principal components of *P*. *P* is a (*numVars*,
*numObs*) array. *frac* is the minimum fraction of variance that a
component must contain to be included.
@@ -870,6 +870,27 @@
'center the data using the mean and sigma from training set a'
return (x - self.mu)/self.sigma
+
+
+ @staticmethod
+ def _get_colinear():
+ c0 = np.array([
+ 0.19294738, 0.6202667 , 0.45962655, 0.07608613, 0.135818 ,
+ 0.83580842, 0.07218851, 0.48318321, 0.84472463, 0.18348462,
+ 0.81585306, 0.96923926, 0.12835919, 0.35075355, 0.15807861,
+ 0.837437 , 0.10824303, 0.1723387 , 0.43926494, 0.83705486])
+
+ c1 = np.array([
+ -1.17705601, -0.513883 , -0.26614584, 0.88067144, 1.00474954,
+ -1.1616545 , 0.0266109 , 0.38227157, 1.80489433, 0.21472396,
+ -1.41920399, -2.08158544, -0.10559009, 1.68999268, 0.34847107,
+ -0.4685737 , 1.23980423, -0.14638744, -0.35907697, 0.22442616])
+
+ c2 = c0 + 2*c1
+ c3 = -3*c0 + 4*c1
+ a = np.array([c3, c0, c1, c2]).T
+ return a
+
def prctile(x, p = (0.0, 25.0, 50.0, 75.0, 100.0)):
"""
Return the percentiles of *x*. *p* can either be a sequence of
Added: trunk/matplotlib/lib/matplotlib/tests/test_mlab.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/tests/test_mlab.py (rev 0)
+++ trunk/matplotlib/lib/matplotlib/tests/test_mlab.py 2009-11-03 20:51:55 UTC (rev 7927)
@@ -0,0 +1,11 @@
+import numpy as np
+import matplotlib.mlab as mlab
+
+@staticmethod
+def test_colinear_pca():
+ a = mlab.PCA._get_colinear()
+ pca = mlab.PCA(a)
+
+ assert(np.allclose(pca.fracs[2:], 0.))
+ assert(np.allclose(pca.Y[:,2:], 0.))
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|