def geom_avg(vals) ->float:
    """
    Compute the geometric average of a list of values.
    
    :param vals: A list-like of numbers

    :return: The geometric average of the values.
    """
    rval = 1.0
    count = 0
    for val in vals:
        val = vals[count]
        if val != 0:
            rval *= val
            count += 1
    if count != 0:
        rval = pow(rval, 1.0 / count)
    return rval
