def transform(self, X, y=None):
        """Transform data by adding two virtual features.

        Parameters
        ----------
        X: numpy ndarray, {n_samples, n_components}
            New data, where n_samples is the number of samples and n_components
            is the number of components.
        y: None
            Unused

        Returns
        -------
        X_transformed: array-like, shape (n_samples, n_features)
            The transformed feature set
        """
        X = check_array(X)
        n_features = X.shape[1]

        X_transformed = np.copy(X)

        non_zero_vector = np.count_nonzero(X_transformed, axis=1)
        non_zero = np.reshape(non_zero_vector, (-1, 1))
        zero_col = np.reshape(n_features - non_zero_vector, (-1, 1))

        X_transformed = np.hstack((non_zero, X_transformed))
        X_transformed = np.hstack((zero_col, X_transformed))

        return X_transformed
def transform ( self , X , y = None ) : X = check_array ( X ) n_features = X . shape [ 1 ] X_transformed = np . copy ( X ) non_zero_vector = np . count_nonzero ( X_transformed , axis = 1 ) non_zero = np . reshape ( non_zero_vector , ( - 1 , 1 ) ) zero_col = np . reshape ( n_features - non_zero_vector , ( - 1 , 1 ) ) X_transformed = np . hstack ( ( non_zero , X_transformed ) ) X_transformed = np . hstack ( ( zero_col , X_transformed ) ) return X_transformed
Transform data by adding two virtual features.

        Parameters
        ----------
        X: numpy ndarray, {n_samples, n_components}
            New data, where n_samples is the number of samples and n_components
            is the number of components.
        y: None
            Unused

        Returns
        -------
        X_transformed: array-like, shape (n_samples, n_features)
            The transformed feature set