sklearn.util.validation.as_float_array()

def as_float_array(X, copy=True, force_all_finite=True):

    """Converts an array-like to an array of floats

    The new dtype will be np.float32 or np.float64, depending on the original
    type. The function can create a copy or modify the argument depending
    on the argument copy.

    Parameters
    ----------
    X : {array-like, sparse matrix}

    copy : bool, optional
        If True, a copy of X will be created. If False, a copy may still be
        returned if X's dtype is not a floating point type.

    force_all_finite : boolean (default=True)
        Whether to raise an error on np.inf and np.nan in X.

    Returns
    -------
    XT : {array, sparse matrix}
        An array of type np.float
    """

	# array—like: convert
    if isinstance(X, np.matrix) or (not isinstance(X, np.ndarray)
                                    and not sp.issparse(X)):

        return check_array(X, ['csr', 'csc', 'coo'], dtype=np.float64,
                           copy=copy, force_all_finite=force_all_finite,
                           ensure_2d=False)
	
	# 稀疏矩阵且为float
    elif sp.issparse(X) and X.dtype in [np.float32, np.float64]:
        return X.copy() if copy else X
	
	# np.array , float
    elif X.dtype in [np.float32, np.float64]:  # is numpy array

        return X.copy('F' if X.flags['F_CONTIGUOUS'] else 'C') if copy else X
	
	# 若为np.int32转化为np.float32否则转化为np.float64.
    else:

        return X.astype(np.float32 if X.dtype == np.int32 else np.float64)

函数: check_array()

你可能感兴趣的:(sklearn.util.validation.as_float_array())