<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def continuous_partition_data(data, bins='auto', n_bins=10):
 """Convenience method for building a partition object on continuous data Args: data (list-like):
 The data from which to construct the estimate. bins (string):
 One of 'uniform' (for uniformly spaced bins), 'ntile' (for percentile-spaced bins), or 'auto' (for automatically spaced bins) n_bins (int):
 Ignored if bins is auto. Returns: A new partition_object:: { "bins": (list) The endpoints of the partial partition of reals, "weights": (list) The densities of the bins implied by the partition. } """

    if bins == 'uniform':
        bins = np.linspace(start=np.min(data), stop=np.max(data), num=n_bins+1)
    elif bins == 'ntile':
        bins = np.percentile(data, np.linspace(
            start=0, stop=100, num=n_bins+1))
    elif bins != 'auto':
        raise ValueError("Invalid parameter for bins argument")

    hist, bin_edges = np.histogram(data, bins, density=False)

    return {
        "bins": bin_edges,
        "weights": hist / len(data)
    }