def create_feature_indices(header):
    """
    Function to return unique features along with respective column indices
    for each feature in the final numpy array

    Args:
        header (list[str]): description of each feature's possible values

    Returns:
        feature_indices (dict): unique feature names as keys with value
        types (dicrete or continuous) and data column indices where present
    """
    feature_indices = {}
    for i, head in enumerate(header):
        current = head.split("->")
        str_name = current[0].replace(" ", "_")
        if current[0] == "mask":
            feature_indices["presence_" +
                            current[1].replace(" ", "_")] = ["discrete", i]
        elif feature_indices == {} or str_name not in feature_indices:
            if len(current) > 1:
                feature_indices[str_name] = ["discrete", i]
            else:
                feature_indices[str_name] = ["continuous", i]
        elif str_name in feature_indices:
            feature_indices[str_name].extend([i])
    return feature_indices