Computes the root mean square percentage error between two lists
    of numbers. Ignores elements where actual[n] == 0.
    
    Parameters
    ----------
    actual : list of numbers, numpy array
             The ground truth value
    predicted : same type as actual
                The predicted value

    Returns
    -------
    score : double
            The root mean squared percentage error between actual and predicted

def rmspe(actual, predicted):
    """
    Computes the root mean square percentage error between two lists
    of numbers. Ignores elements where actual[n] == 0.
    
    Parameters
    ----------
    actual : list of numbers, numpy array
             The ground truth value
    predicted : same type as actual
                The predicted value

    Returns
    -------
    score : double
            The root mean squared percentage error between actual and predicted

    """
    
    actual = np.array(actual)
    predicted = np.array(predicted)
    zeros = actual == 0
    actual = actual[~zeros]
    predicted = predicted[~zeros]
    return np.sqrt(np.sum(np.power((actual - predicted) / actual, 2)) / len(actual))