sklearn.utils.check_X_y(X, y, accept_sparse=False, dtype=’numeric’, order=None, copy=False, force_all_finite=True, ensure_2d=True, allow_nd=False, multi_output=False, ensure_min_samples=1, ensure_min_features=1, y_numeric=False, warn_on_dtype=False, estimator=None)[source]

Input validation for standard estimators.

Checks X and y for consistent length, enforces X 2d and y 1d. Standard input checks are only applied to y, such as checking that y does not have np.nan or np.inf targets. For multi-label y, set multi_output=True to allow 2d and sparse y. If the dtype of X is object, attempt converting to float, raising on failure.


X : nd-array, list or sparse matrix

Input data.

y : nd-array, list or sparse matrix


accept_sparse : string, boolean or list of string (default=False)

String[s] representing allowed sparse matrix formats, such as ‘csc’, ‘csr’, etc. If the input is sparse but not in the allowed format, it will be converted to the first listed format. True allows the input to be any format. False means that a sparse matrix input will raise an error.

Deprecated since version 0.19: Passing ‘None’ to parameter accept_sparse in methods is deprecated in version 0.19 “and will be removed in 0.21. Use accept_sparse=False instead.

dtype : string, type, list of types or None (default=”numeric”)

Data type of result. If None, the dtype of the input is preserved. If “numeric”, dtype is preserved unless array.dtype is object. If dtype is a list of types, conversion on the first type is only performed if the dtype of the input is not in the list.

order : ‘F’, ‘C’ or None (default=None)

Whether an array will be forced to be fortran or c-style.

copy : boolean (default=False)

Whether a forced copy will be triggered. If copy=False, a copy might be triggered by a conversion.

force_all_finite : boolean (default=True)

Whether to raise an error on np.inf and np.nan in X. This parameter does not influence whether y can have np.inf or np.nan values.

ensure_2d : boolean (default=True)

Whether to make X at least 2d.

allow_nd : boolean (default=False)

Whether to allow X.ndim > 2.

multi_output : boolean (default=False)

Whether to allow 2-d y (array or sparse matrix). If false, y will be validated as a vector. y cannot have np.nan or np.inf values if multi_output=True.

ensure_min_samples : int (default=1)

Make sure that X has a minimum number of samples in its first axis (rows for a 2D array).

ensure_min_features : int (default=1)

Make sure that the 2D array has some minimum number of features (columns). The default value of 1 rejects empty datasets. This check is only enforced when X has effectively 2 dimensions or is originally 1D and ensure_2d is True. Setting to 0 disables this check.

y_numeric : boolean (default=False)

Whether to ensure that y has a numeric type. If dtype of y is object, it is converted to float64. Should only be used for regression algorithms.

warn_on_dtype : boolean (default=False)

Raise DataConversionWarning if the dtype of the input data structure does not match the requested dtype, causing a memory copy.

estimator : str or estimator instance (default=None)

If passed, include the name of the estimator in warning messages.


X_converted : object

The converted and validated X.

y_converted : object

The converted and validated y.