[Scipy-svn] r2964 - in trunk/Lib/cluster: . tests
scipy-svn at scipy.org
scipy-svn at scipy.org
Sat May 5 05:11:54 EDT 2007
Author: cdavid
Date: 2007-05-05 04:11:47 -0500 (Sat, 05 May 2007)
New Revision: 2964
Modified:
trunk/Lib/cluster/tests/test_vq.py
trunk/Lib/cluster/vq.py
Log:
Fix clusters.kmeans2 for 1d dimension data, generate better for unsupported rank 1 arrays and fix test for _vq
Modified: trunk/Lib/cluster/tests/test_vq.py
===================================================================
--- trunk/Lib/cluster/tests/test_vq.py 2007-05-05 08:52:03 UTC (rev 2963)
+++ trunk/Lib/cluster/tests/test_vq.py 2007-05-05 09:11:47 UTC (rev 2964)
@@ -1,7 +1,7 @@
#! /usr/bin/env python
# David Cournapeau
-# Last Change: Thu Apr 26 09:00 PM 2007 J
+# Last Change: Sat May 05 06:00 PM 2007 J
# For now, just copy the tests from sandbox.pyem, so we can check that
# kmeans works OK for trivial examples.
@@ -13,6 +13,12 @@
set_package_path()
from cluster.vq import kmeans, kmeans2, py_vq, py_vq2, _py_vq_1d
+try:
+ from cluster import _vq
+ TESTC=True
+except ImportError:
+ print "== Error while importing _vq, not testing C imp of vq =="
+ TESTC=False
restore_path()
#Optional:
@@ -53,12 +59,11 @@
def check_vq(self, level=1):
initc = N.concatenate(([[X[0]], [X[1]], [X[2]]]))
code = initc.copy()
- try:
- import _vq
+ if TESTC:
label1 = _vq.double_vq(X, initc)[0]
assert_array_equal(label1, LABEL1)
- except ImportError:
- print "== Error while importing _vq, not testing C imp of vq =="
+ else:
+ print "== not testing C imp of vq =="
#def check_vq_1d(self, level=1):
# data = X[:, 0]
@@ -115,5 +120,11 @@
kmeans2(data, 3, minit = 'random')
kmeans2(data, 3, minit = 'points')
+ # Check special case 1d
+ data = data[:, :1]
+ kmeans2(data, 3, minit = 'random')
+ kmeans2(data, 3, minit = 'points')
+
+
if __name__ == "__main__":
NumpyTest().run()
Modified: trunk/Lib/cluster/vq.py
===================================================================
--- trunk/Lib/cluster/vq.py 2007-05-05 08:52:03 UTC (rev 2963)
+++ trunk/Lib/cluster/vq.py 2007-05-05 09:11:47 UTC (rev 2964)
@@ -446,8 +446,8 @@
Number of samples to generate.
"""
- mu = N.mean(data, 0)
- cov = N.cov(data, rowvar = 0)
+ mu = N.mean(data, 0)
+ cov = N.atleast_2d(N.cov(data, rowvar = 0))
# k rows, d cols (one row = one obs)
# Generate k sample of a random variable ~ Gaussian(mu, cov)
@@ -500,6 +500,7 @@
nd = N.ndim(data)
if nd == 1:
d = 1
+ raise ValueError("Input of rank 1 not supported yet")
elif nd == 2:
d = data.shape[1]
else:
More information about the Scipy-svn
mailing list