def extract_feature_target(df, target, todf=True, exclusions=None):
    """
        Separate feature set and target as ndarrays

        Parameters
        ----------
        df: data frame
        target: column name in string

        Returns
        -------
        X: All columns except target 
        y: target column
        features: list of column names except target

    """

    if exclusions is None:
        exclusions= []
    all_columns = list(set(df.columns) - set(exclusions))
    features = list(set(all_columns) - set([target]))

    # convert as ndarray
    # dtype changed - all object
    if todf == False:
        # y = df[[target]].ix[:, 0].values
        y = df[[target]].to_numpy()
        y = y.reshape(-1)
        X = df[features].values
    else:
        y = df[[target]]
        X = df.loc[:, df.columns != target]

    return (X, y, features)