check_array#

sklearn.utils.check_array(array, accept_sparse=False, *, accept_large_sparse=True, dtype='numeric', order=None, copy=False, force_writeable=False, force_all_finite='deprecated', ensure_all_finite=None, ensure_non_negative=False, ensure_2d=True, allow_nd=False, ensure_min_samples=1, ensure_min_features=1, estimator=None, input_name='')[源代码]#

对数组、列表、稀疏矩阵或类似数据进行输入验证。

默认情况下,输入会被检查是否为非空的二维数组,且只包含有限值。如果数组的dtype是对象类型,则会尝试转换为浮点数,失败则抛出错误。

参数:
array对象

要检查/转换的输入对象。

accept_sparsestr, bool 或 str 的 list/tuple, 默认值=False

表示允许的稀疏矩阵格式的字符串,如 'csc'、'csr' 等。如果输入是稀疏矩阵但格式不被允许,它将被转换为列表中第一个指定的格式。True 表示允许任何稀疏格式的输入。False 表示稀疏矩阵输入将引发错误。

accept_large_sparsebool, 默认值=True

如果提供了一个 CSR、CSC、COO 或 BSR 稀疏矩阵并被 accept_sparse 接受,则当 accept_large_sparse=False 时,仅当其索引以 32 位 dtype 存储时才会被接受。

0.20 版本新增。

dtype‘numeric’, 类型, 类型列表或 None, 默认值=’numeric’

结果的数据类型。如果为 None,则保留输入的 dtype。如果为“numeric”,则保留 dtype,除非 array.dtype 为 object。如果 dtype 是类型列表,则仅当输入的 dtype 不在列表中时才执行到第一个类型的转换。

order{‘F’, ‘C’} 或 None, 默认值=None

数组是否强制为 Fortran 或 C 样式。当 order 为 None(默认)时,如果 copy=False,则不保证输出数组的内存布局;否则(copy=True),返回数组的内存布局会尽可能接近原始数组。

copybool, 默认值=False

是否触发强制复制。如果 copy=False,可能会因转换而触发复制。

force_writeablebool, 默认值=False

是否强制输出数组可写。如果为 True,则返回的数组保证可写,这可能需要复制。否则,保留输入数组的可写性。

1.6 版本新增。

force_all_finitebool 或 ‘allow-nan’, 默认值=True

是否在数组中遇到 np.inf、np.nan、pd.NA 时抛出错误。可能性包括:

  • True: 强制数组中的所有值都为有限值。

  • False: 接受数组中的 np.inf、np.nan、pd.NA。

  • ‘allow-nan’: 仅接受数组中的 np.nan 和 pd.NA 值。值不能是无限的。

0.20 版本新增:force_all_finite 接受字符串 'allow-nan'

0.23 版本改动:接受 pd.NA 并将其转换为 np.nan

自 1.6 版本弃用:force_all_finite 已更名为 ensure_all_finite,并将在 1.8 版本中移除。

ensure_all_finitebool 或 ‘allow-nan’, 默认值=True

是否在数组中遇到 np.inf、np.nan、pd.NA 时抛出错误。可能性包括:

  • True: 强制数组中的所有值都为有限值。

  • False: 接受数组中的 np.inf、np.nan、pd.NA。

  • ‘allow-nan’: 仅接受数组中的 np.nan 和 pd.NA 值。值不能是无限的。

1.6 版本新增:force_all_finite 已更名为 ensure_all_finite

ensure_non_negativebool, 默认值=False

确保数组只包含非负值。如果为 True,包含负值的数组将引发 ValueError。

1.6 版本新增。

ensure_2dbool, 默认值=True

如果数组不是二维的,是否引发值错误。

allow_ndbool, 默认值=False

是否允许 array.ndim > 2。

ensure_min_samplesint, 默认值=1

确保数组在其第一个轴(对于二维数组是行)上具有最小样本数。设置为 0 可禁用此检查。

ensure_min_featuresint, 默认值=1

确保二维数组具有最小数量的特征(列)。默认值 1 会拒绝空数据集。此检查仅在输入数据实际具有 2 维或原始为 1 维且 ensure_2d 为 True 时强制执行。设置为 0 可禁用此检查。

estimatorstr 或 estimator 实例, 默认值=None

如果传入,则在警告消息中包含估计器的名称。

input_namestr, 默认值=””

用于构建错误消息的数据名称。特别是,如果 input_name 为“X”,且数据包含 NaN 值且 allow_nan 为 False,则错误消息将链接到 imputer 文档。

1.1.0 版本新增。

返回:
array_converted对象

转换并验证后的数组。

示例

>>> from sklearn.utils.validation import check_array
>>> X = [[1, 2, 3], [4, 5, 6]]
>>> X_checked = check_array(X)
>>> X_checked
array([[1, 2, 3], [4, 5, 6]])