检查数组#
- 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='')[source]#
对数组、列表、稀疏矩阵或类似对象进行输入验证。
默认情况下,输入将被检查为仅包含有限值的非空二维数组。如果数组的dtype为object,则尝试转换为浮点数,转换失败则引发错误。
- 参数:
- array对象
要检查/转换的输入对象。
- accept_sparsestr、bool或str列表/元组,默认为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”,则除非array.dtype为object,否则保留dtype。如果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
如果数组不是二维的,是否引发ValueError。
- allow_ndbool,默认为False
是否允许array.ndim > 2。
- ensure_min_samplesint,默认为1
确保数组在其第一轴(对于二维数组而言为行)上具有最少数量的样本。设置为0将禁用此检查。
- ensure_min_featuresint,默认为1
确保二维数组具有一些最小数量的特征(列)。默认值为1会拒绝空数据集。只有当输入数据有效地具有二维或最初为一维且
ensure_2d
为True时,才会执行此检查。设置为0将禁用此检查。- estimatorstr或估计器实例,默认为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]])