def METHOD_NAME(self, *array: np.ndarray) -> CombinedParameter:
    """
    Creates a new combined parameter to be iterated over.
    One can sweep over either:
     - n array of length m
     - one nxm array
    where n is the number of combined parameters
    and m is the number of setpoints
    Args:
        *array: Array(s) of setpoints.
    Returns:
        combined parameter
    """
    # if it's a list of arrays, convert to one array
    if len(array) > 1:
        dim = {len(a) for a in array}
        if len(dim) != 1:
            raise ValueError("Arrays have different number of setpoints")
        nparray = np.array(array).transpose()
    else:
        # cast to array in case users
        # decide to not read docstring
        # and pass a 2d list
        nparray = np.array(array[0])
    new = copy(self)
    _error_msg = """ Dimensionality of array does not match\
                    the number of parameter combined. Expected a \
                    {} dimensional array, got a {} dimensional array. \
                    """
    try:
        if nparray.shape[1] != self.dimensionality:
            raise ValueError(
                _error_msg.format(self.dimensionality, nparray.shape[1])
            )
    except KeyError:
        # this means the array is 1d
        raise ValueError(_error_msg.format(self.dimensionality, 1))
    new.setpoints = nparray.tolist()
    return new