python: np.arange decimal places code example

Example: python: np.arange decimal places

# It's embarrassing that python's range accumulate rounding errors
# when using decimal step.
# It's easy to implement a generator that does this even without accumulating
# rounding errors.
#
# Lot of suggestions were made at  https://stackoverflow.com/questions/477486/how-to-use-a-decimal-range-step-value
# Going through the forum, a general solution is presented below.
# The seq function use generates ranges with decimal step without rounding error


def seq(start, stop, step=1):
    n = int(round((stop - start)/float(step)))
    const = pow(step,-1)
    if n > 1:
        return([start + (i/const) for i in range(n+1)])
    elif n == 1:
        return([start])
    else:
        return([])
      
      

# The seq function above works fine though may have performance issue 
# because of the use of power and division. Its therefore advice to
# use it only when rounding error is of atmost concern.

Tags:

Misc Example