Skip to main content

Numpy based step function library.

Project description

Hot Stepper

The Hot Stepper library is for exploring datasets via step function expansions.

It's all about tools that just work and no need for extensive knowledge of Pandas or Numpy or whatever, just HotStepper!. Albeit, knowledge of Pandas and Numpy is useful.

Documentation Status

Installation

HotStepper can be installed from PyPI:

pip install hotstepper

Conda install coming soon!

Documentation

Everything (mostly) you want to know about HotStepper and making use in your workflow is here Read the Docs

Sample Data Repository

Sample data is located here: hotstepper-data. I'd like to thank the Staircase package owner for currating some of these datasets, thanks Riley!

Step Functions, ah?

What the f*&^ is a step function you may ask?, Have you ever seen some stairs?, this is an equal oppotunity package, so you may be in a wheel chair and unable to use stairs in the typical way, so just having seen some stairs will suffix.

Instead of providing a strict mathematical definition that we can all wank off about, how bout just some simple comparisons to warm us up? If you still need to have a wank, feel free to step out (pun intended) anytime.

What is a function? ok, how about just some data we could plot? let's go home school, say we have a vector...oh f&^%, what is that? ok ok, how about just a list of numbers, say y = (1, 1, 2, 3, 5, 8, 13, 21), to keep the wanking impulse alive, we could say that this is a discrete function where we can index the values from left to right with an integer, for example y(x) = (1,1,2,3,5,8,13,21), {x: x\in \mathbb{N}}, so that we could do something fancy like y(6) = 8.

Alright, if we just plot y(n) with straight lines connecting the points, we'd get something like,

    import matplotlib.pyplot as plt
    
    def fibo_sequence(n):
        f0 = 0
        fn = 1

        for _ in range(n):
            yield fn
            f0, fn = fn, f0 + fn

    sequence_length = 8
    x = np.arange(0,8,1,dtype=int)
    y = np.array(list(fibo_sequence(sequence_length)),dtype=int)

    fig,ax = plt.subplots()
    ax.plot(x,y)

Fibonacci Step Plot

Now what if we only start with the rules of the fibonacci sequence, we can generate a step sequence directly.

    import matplotlib.pyplot as plt
    from hotstepper import Step, Steps

    def fibo_step_sequence(n):
        f0 = 0
        fn = 1

        for i in range(n):
            yield Step(start=i+1,weight=(fn - f0))
            f0, fn = fn, f0 + fn

    sequence_length = 8
    st = Steps().add([f for f in fibo_step_sequence(sequence_length)])

    ax = st.plot()
    st.smooth_plot(color='g',ax=ax,smooth_factor=0.3)
    plt.setp(ax, title='Fibo Steps and Components',xlabel='Index', ylabel='Steps Value')

    #Our steps object contains individual step functions, we can iterate over these directly, nice!
    for s in st:
        s.plot(ax=ax,linestyle='-.')
        s.smooth_plot(ax=ax,linestyle='-.',color='g')

Fibonacci Step Plot

A very quick taste of the power that can be tapped with HotStepper. Let's say you have a data set as check-in and check-out times for a hotel. If we need to understand how many people are present in the hotel at any point in time and, as a sample of how HotStepper can help speed your analysis, we can get a quick summary of the dataset with a single line of code.

    import hotstepper.samples as samples

    #Typical work flow, get the data
    hotel_stays = samples.hotel_stays_sample()

    #Explore the data
    hotel_stays.summary()

Hotel Stays Summary

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hotstepper-1.0.6.tar.gz (31.1 kB view details)

Uploaded Source

File details

Details for the file hotstepper-1.0.6.tar.gz.

File metadata

  • Download URL: hotstepper-1.0.6.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for hotstepper-1.0.6.tar.gz
Algorithm Hash digest
SHA256 43c4cd47c054eaaebcad2b8dba0a5325500486c91a6044824dea2a0dc3d24e40
MD5 40b60d362bebb49a0c46660568c2dc0e
BLAKE2b-256 5db41d834d549705427551a72841231af312cf2f8f8a3045c90a8616fe559678

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page