<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def resolution(x, zero=True):
 """ Compute the resolution of a data vector Resolution is smallest non-zero distance between adjacent values Parameters x : 1D array-like zero : Boolean Whether to include zero values in the computation Result ------ res : resolution of x If x is an integer array, then the resolution is 1 """

    x = np.asarray(x)

    # (unsigned) integers or an effective range of zero
    _x = x[~np.isnan(x)]
    _x = (x.min(), x.max())
    if x.dtype.kind in ('i', 'u') or zero_range(_x):
        return 1

    x = np.unique(x)
    if zero:
        x = np.unique(np.hstack([0, x]))

    return np.min(np.diff(np.sort(x)))