Skip to content

wmaousley/wavy

 
 

Repository files navigation

≈ Wavy: Time-Series Manipulation ≈


GitHub Contributors GitHub Last Commit Github License

Wavy is a time-series manipulation library designed to simplify the pre-processing steps and reliably avoid the problem of data leakage. Its main structure is built on top of Pandas. Explore the docs 📖 Logo

📦 Installation

You can install Wavy from pip:

pip install wavyts

🚀 Quickstart

import numpy as np
import pandas as pd
import wavy
from wavy import models

# Start with any time-series dataframe:
df = pd.DataFrame({'price': np.random.randn(1000)}, index=range(1000))

# Create panels. Each panel is a frame collection.
x, y = wavy.create_panels(df, lookback=3, horizon=1)

# x and y contain the past and corresponding future data.
# lookback and horizon are the number of timesteps.
print("Lookback:", x.num_timesteps)
print("Horizon:", y.num_timesteps)

# Set train-val-test split. Defaults to 0.7, 0.2 and 0.1, respectively.
wavy.set_training_split(x, y)

# Instantiate a model:
model = models.LinearRegression(x, y)
model.score()

🎯 Features

💡 Wavy is:

  • A resourceful, high-level package with tools for time-series processing, visualization, and modeling.
  • A facilitator for time-series windowing that helps reduce boilerplate code and avoid shape confusion.

❗ Wavy is not:

  • An efficient, performance-first framework (yet!).
  • Primarily focused on models. Processed data can be easily converted to numpy arrays for further exploration.

🙌 Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make to wavy are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! ⭐

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📃 License

Distributed under the MIT License. See LICENSE.txt for more information.

About

Time-Series Manipulation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 92.7%
  • Python 7.3%