def denumpyfy(tuple_list_dict_number):
    """A nested structure of tuples, lists, dicts and the lowest level numpy
    values gets converted to an object with the same structure but all being
    corresponding native python numbers.

    Parameters
    ----------
    tuple_list_dict_number : tuple, list, dict, number
        The object that should be converted.

    Returns
    -------
    tuple, list, dict, native number (float, int)
        The object with the same structure but only native python numbers.

    """
    if isinstance(tuple_list_dict_number, tuple):
        return tuple([denumpyfy(elem) for elem in tuple_list_dict_number])
    if isinstance(tuple_list_dict_number, list):
        return [denumpyfy(elem) for elem in tuple_list_dict_number]
    if isinstance(tuple_list_dict_number, dict):
        return {denumpyfy(k): denumpyfy(tuple_list_dict_number[k])
                for k in tuple_list_dict_number}
    if isinstance(tuple_list_dict_number, float):
        return float(tuple_list_dict_number)
    if isinstance(tuple_list_dict_number, int):
        return int(tuple_list_dict_number)
    return tuple_list_dict_number