From 51d4310c6feeb1ace394cc577dac06f22b6e1a75 Mon Sep 17 00:00:00 2001 From: Lars Buitinck <L.J.Buitinck@uva.nl> Date: Fri, 21 Oct 2011 13:58:08 +0200 Subject: [PATCH] COSMIT rename safe_asanyarray to safe_asarray to prevent confusion --- doc/developers/index.rst | 11 +---------- sklearn/cluster/affinity_propagation_.py | 1 + sklearn/feature_selection/univariate_selection.py | 6 +++--- sklearn/linear_model/base.py | 6 +++--- sklearn/linear_model/ridge.py | 6 +++--- sklearn/metrics/pairwise.py | 8 ++++---- sklearn/naive_bayes.py | 4 ++-- sklearn/neighbors/base.py | 4 ++-- sklearn/svm/base.py | 4 ++-- sklearn/utils/__init__.py | 4 ++-- sklearn/utils/tests/test___init__.py | 8 ++++---- 11 files changed, 27 insertions(+), 35 deletions(-) diff --git a/doc/developers/index.rst b/doc/developers/index.rst index a6824be432..19bbf8ae05 100644 --- a/doc/developers/index.rst +++ b/doc/developers/index.rst @@ -276,7 +276,7 @@ Input validation The module ``sklearn.utils`` contains various functions for doing input validation/conversion. Sometimes, ``np.atleast_2d`` suffices for validation; -in other cases, be sure to call ``safe_asanyarray``, ``atleast2d_or_csr`` or +in other cases, be sure to call ``safe_asarray``, ``atleast2d_or_csr`` or ``as_float_array`` on any array-like argument passed to a scikit-learn API function. @@ -430,15 +430,6 @@ you call ``fit`` a second time without taking any previous value into account: **fit should be idempotent**. -Python tuples -^^^^^^^^^^^^^ - -In addition to numpy arrays, all methods should be able to accept -Python tuples as arguments. In practice, this means you should call -``numpy.asanyarray`` at the beginning at each public method that accepts -arrays. - - Optional Arguments ^^^^^^^^^^^^^^^^^^ diff --git a/sklearn/cluster/affinity_propagation_.py b/sklearn/cluster/affinity_propagation_.py index eceb412c69..e84b138d2c 100644 --- a/sklearn/cluster/affinity_propagation_.py +++ b/sklearn/cluster/affinity_propagation_.py @@ -10,6 +10,7 @@ clustering. import numpy as np from ..base import BaseEstimator +from ..utils import as_float_array def affinity_propagation(S, p=None, convit=30, max_iter=200, damping=0.5, diff --git a/sklearn/feature_selection/univariate_selection.py b/sklearn/feature_selection/univariate_selection.py index a553d36a08..f839c5ea92 100644 --- a/sklearn/feature_selection/univariate_selection.py +++ b/sklearn/feature_selection/univariate_selection.py @@ -13,7 +13,7 @@ from scipy.sparse import issparse from ..base import BaseEstimator, TransformerMixin from ..preprocessing import LabelBinarizer -from ..utils import safe_asanyarray +from ..utils import safe_asarray from ..utils.extmath import safe_sparse_dot ###################################################################### @@ -146,7 +146,7 @@ def chi2(X, y): # XXX: we might want to do some of the following in logspace instead for # numerical stability. - X = safe_asanyarray(X) + X = safe_asarray(X) Y = LabelBinarizer().fit_transform(y) if Y.shape[1] == 1: Y = np.append(1 - Y, Y, axis=1) @@ -248,7 +248,7 @@ class _AbstractUnivariateFilter(BaseEstimator, TransformerMixin): """ Transform a new matrix using the selected features """ - return safe_asanyarray(X)[:, self.get_support(indices=issparse(X))] + return safe_asarray(X)[:, self.get_support(indices=issparse(X))] def inverse_transform(self, X): """ diff --git a/sklearn/linear_model/base.py b/sklearn/linear_model/base.py index ba29aef268..2bbf2ba8f0 100644 --- a/sklearn/linear_model/base.py +++ b/sklearn/linear_model/base.py @@ -19,7 +19,7 @@ from ..base import RegressorMixin from ..base import ClassifierMixin from ..base import TransformerMixin from ..utils.extmath import safe_sparse_dot -from ..utils import as_float_array, safe_asanyarray +from ..utils import as_float_array, safe_asarray from ..utils import atleast2d_or_csr, check_arrays from .sgd_fast import Hinge, Log, ModifiedHuber, SquaredLoss, Huber @@ -49,7 +49,7 @@ class LinearModel(BaseEstimator, RegressorMixin): C : array, shape = [n_samples] Returns predicted values. """ - X = safe_asanyarray(X) + X = safe_asarray(X) return safe_sparse_dot(X, self.coef_.T) + self.intercept_ @staticmethod @@ -355,7 +355,7 @@ class BaseSGDClassifier(BaseSGD, ClassifierMixin): ------- self : returns an instance of self. """ - X = safe_asanyarray(X) + X = safe_asarray(X) y = np.asarray(y, dtype=np.float64, order='C') n_samples, n_features = X.shape diff --git a/sklearn/linear_model/ridge.py b/sklearn/linear_model/ridge.py index 388d94af1d..ee11e55de1 100644 --- a/sklearn/linear_model/ridge.py +++ b/sklearn/linear_model/ridge.py @@ -9,7 +9,7 @@ import numpy as np from .base import LinearModel from ..utils.extmath import safe_sparse_dot -from ..utils import safe_asanyarray +from ..utils import safe_asarray from ..preprocessing import LabelBinarizer from ..grid_search import GridSearchCV @@ -201,7 +201,7 @@ class Ridge(LinearModel): ------- self : returns an instance of self. """ - X = safe_asanyarray(X, dtype=np.float) + X = safe_asarray(X, dtype=np.float) y = np.asarray(y, dtype=np.float) X, y, X_mean, y_mean, X_std = \ @@ -394,7 +394,7 @@ class _RidgeGCV(LinearModel): ------- self : Returns self. """ - X = safe_asanyarray(X, dtype=np.float) + X = safe_asarray(X, dtype=np.float) y = np.asarray(y, dtype=np.float) n_samples = X.shape[0] diff --git a/sklearn/metrics/pairwise.py b/sklearn/metrics/pairwise.py index ccf1476e04..00f4930f83 100644 --- a/sklearn/metrics/pairwise.py +++ b/sklearn/metrics/pairwise.py @@ -37,7 +37,7 @@ kernel: import numpy as np from scipy.spatial import distance from scipy.sparse import csr_matrix, issparse -from ..utils import safe_asanyarray, atleast2d_or_csr, deprecated +from ..utils import safe_asarray, atleast2d_or_csr, deprecated from ..utils.extmath import safe_sparse_dot @@ -71,10 +71,10 @@ def check_pairwise_arrays(X, Y): """ if Y is X or Y is None: - X = Y = safe_asanyarray(X) + X = Y = safe_asarray(X) else: - X = safe_asanyarray(X) - Y = safe_asanyarray(Y) + X = safe_asarray(X) + Y = safe_asarray(Y) X = atleast2d_or_csr(X) Y = atleast2d_or_csr(Y) if len(X.shape) < 2: diff --git a/sklearn/naive_bayes.py b/sklearn/naive_bayes.py index 0ce352eafa..30e8a6e93e 100644 --- a/sklearn/naive_bayes.py +++ b/sklearn/naive_bayes.py @@ -25,7 +25,7 @@ from scipy.sparse import issparse from .base import BaseEstimator, ClassifierMixin from .preprocessing import binarize, LabelBinarizer -from .utils import safe_asanyarray, atleast2d_or_csr +from .utils import safe_asarray, atleast2d_or_csr from .utils.extmath import safe_sparse_dot, logsum from .utils.fixes import unique @@ -230,7 +230,7 @@ class BaseDiscreteNB(BaseNB): Returns self. """ X = atleast2d_or_csr(X) - y = safe_asanyarray(y) + y = safe_asarray(y) if X.shape[0] != y.shape[0]: msg = "X and y have incompatible shapes." diff --git a/sklearn/neighbors/base.py b/sklearn/neighbors/base.py index fd5bfe7dfe..87c3407c99 100644 --- a/sklearn/neighbors/base.py +++ b/sklearn/neighbors/base.py @@ -14,7 +14,7 @@ from scipy.spatial.ckdtree import cKDTree from .ball_tree import BallTree from ..base import BaseEstimator from ..metrics import euclidean_distances -from ..utils import safe_asanyarray, atleast2d_or_csr +from ..utils import safe_asarray, atleast2d_or_csr def warn_equidistant(): @@ -104,7 +104,7 @@ class NeighborsBase(BaseEstimator): self._fit_method = 'kd_tree' return self - X = safe_asanyarray(X) + X = safe_asarray(X) if X.ndim != 2: raise ValueError("data type not understood") diff --git a/sklearn/svm/base.py b/sklearn/svm/base.py index d8ebcf11b1..a8575f9055 100644 --- a/sklearn/svm/base.py +++ b/sklearn/svm/base.py @@ -2,7 +2,7 @@ import numpy as np from . import libsvm, liblinear from ..base import BaseEstimator -from ..utils import safe_asanyarray +from ..utils import safe_asarray LIBSVM_IMPL = ['c_svc', 'nu_svc', 'one_class', 'epsilon_svr', 'nu_svr'] @@ -383,7 +383,7 @@ class BaseLibLinear(BaseEstimator): self.class_weight, self.class_weight_label = \ _get_class_weight(class_weight, y) - X = safe_asanyarray(X, dtype=np.float64, order='C') + X = safe_asarray(X, dtype=np.float64, order='C') if not isinstance(X, np.ndarray): # sparse X passed in by user raise ValueError("Training vectors should be array-like, not %s" % type(X)) diff --git a/sklearn/utils/__init__.py b/sklearn/utils/__init__.py index bbe776686c..3e329385d1 100644 --- a/sklearn/utils/__init__.py +++ b/sklearn/utils/__init__.py @@ -15,7 +15,7 @@ def assert_all_finite(X): raise ValueError("array contains NaN or infinity") -def safe_asanyarray(X, dtype=None, order=None): +def safe_asarray(X, dtype=None, order=None): """Convert X to an array or sparse matrix. Prevents copying X when possible; sparse matrices are passed through.""" if not sp.issparse(X): @@ -47,7 +47,7 @@ def as_float_array(X, copy=True): if isinstance(X, np.matrix): X = X.A elif not isinstance(X, np.ndarray) and not sp.issparse(X): - return safe_asanyarray(X, dtype=np.float64) + return safe_asarray(X, dtype=np.float64) if X.dtype in [np.float32, np.float64]: return X.copy() if copy else X if X.dtype == np.int32: diff --git a/sklearn/utils/tests/test___init__.py b/sklearn/utils/tests/test___init__.py index 9db225327c..69a1305f36 100644 --- a/sklearn/utils/tests/test___init__.py +++ b/sklearn/utils/tests/test___init__.py @@ -1,7 +1,7 @@ import numpy as np import scipy.sparse as sp -from .. import as_float_array, atleast2d_or_csr, safe_asanyarray +from .. import as_float_array, atleast2d_or_csr, safe_asarray def test_as_float_array(): @@ -39,6 +39,6 @@ def test_np_matrix(): assert not isinstance(atleast2d_or_csr(np.matrix(X)), np.matrix) assert not isinstance(atleast2d_or_csr(sp.csc_matrix(X)), np.matrix) - assert not isinstance(safe_asanyarray(X), np.matrix) - assert not isinstance(safe_asanyarray(np.matrix(X)), np.matrix) - assert not isinstance(safe_asanyarray(sp.lil_matrix(X)), np.matrix) + assert not isinstance(safe_asarray(X), np.matrix) + assert not isinstance(safe_asarray(np.matrix(X)), np.matrix) + assert not isinstance(safe_asarray(sp.lil_matrix(X)), np.matrix) -- GitLab