def standardize(df,invert=None):
    """
    Forward and inverse standardization transformation (mean=0, std=1)
    
    Parameters
    ----------
    df: pandas.DataFrame
        Input dataframe with numeric columns to be standardized
    invert: dict
        used to perform inverse transformation.
    
    Returns
    -------
    pandas.DataFrame
        standardized input dataframe
    dict
        contains information regarding forward transformation which can be used to perform inverse transformation
        dict of str (boxcox-transformed column name):dict, which contains as keys 'std' and 'mean'
    
    Examples
    --------
    >>> Transformed_DataFrame,Transformation_dict = standardize(DataFrame)
    >>> Inverse_Transformed_DataFrame = standardize(Transformed_DataFrame,invert=Transformation_dict)
        
    """
    _df = df.copy()
    if invert is not None:
        for col in invert:
            _df[col]*=invert[col]['std']
            _df[col]+=invert[col]['mean']
        return _df
    else:
        transformation={}
        for col in _df.select_dtypes('number'):
            transformation[col]={'mean':_df[col].mean(),'std':_df[col].std()}
            _df[col] = (_df[col]-transformation[col]['mean'])/transformation[col]['std']
        return _df,transformation