def _get_internal_bounds(params):
    """Extract the internal bounds from params.

    Args:
        params (pd.DataFrame): See :ref:`params`.

    Returns:
        bounds (tuple): Bounds of the free parameters. The tuple has two entries.
            The first are the lower bounds as numpy array.
            The second are the upper bounds as numpy array.

    """
    bounds = tuple(
        params.query("_internal_free")[["_internal_lower", "_internal_upper"]]
        .to_numpy()
        .T
    )
    return bounds