A lightweight, practical utility library for data scientists and ML engineers
Project description
Datawhisk
A lightweight, practical utility library for data scientists and ML engineers.
datawhisk provides a curated collection of analytical helpers designed to streamline common data science workflows. Built with speed, simplicity, and reliability in mind.
Why datawhisk?
- 🚀 Fast: Optimized implementations faster than manual approaches
- 🎯 Practical: Solves real problems data scientists face daily
- 🪶 Lightweight: Minimal dependencies, quick to install
- 📊 Reliable: 90%+ test coverage, production-ready
- 🧩 Intuitive: Clean APIs that "just work"
Installation
pip install datawhisk
With visualization support:
pip install datawhisk[viz]
Quick Start
Memory Optimizer
Automatically optimize DataFrame memory usage:
from datawhisk.analytical import optimize_memory
import pandas as pd
# Create a DataFrame
df = pd.DataFrame({
'id': range(1000000),
'category': ['A', 'B', 'C'] * 333334,
'value': [1.5] * 1000000
})
# Optimize memory
optimized_df, report = optimize_memory(df, return_report=True)
print(f"Memory reduced by {report['reduction_percent']:.1f}%")
# Output: Memory reduced by 65.2%
Correlation Analyzer
Smart correlation analysis with multicollinearity detection:
from datawhisk.analytical import analyze_correlations
# Analyze correlations
results = analyze_correlations(
df,
target='price',
threshold=0.8,
method='pearson'
)
print(results.recommendations)
# Output: ['Remove feature_X (VIF=12.3)', 'Keep feature_Y (VIF=2.1)']
Quick EDA Reporter
Fast exploratory data analysis:
from datawhisk.analytical import quick_eda
# Generate EDA report (Standard)
report = quick_eda(df, visualize=True)
# Generate Custom Report (Modular)
# checks only missing values and structure
report_custom = quick_eda(
df,
check_missing=True,
check_structure=True,
check_outliers=False,
check_distribution=False
)
print(report.summary)
# Dataset Shape: (1000, 5)
# Missing Values: 23 (2.3%)
# Outliers Detected: 156 total
# High cardinality columns: ['user_id', 'transaction_id']
Features
Analytical Helpers
- Memory Optimizer: Automatically downcast dtypes and optimize memory usage
- Correlation Analyzer: Calculate correlations with VIF and multicollinearity detection
- Quick EDA Reporter: Fast statistical summaries with anomaly detection
Comparison with Alternatives
| Feature | datawhisk | Pandas | pandas-profiling |
|---|---|---|---|
| Memory Optimization | ✅ Auto | Manual | ❌ |
| VIF Calculation | ✅ Built-in | Manual | ❌ |
| Speed (EDA) | ⚡ Fast | N/A | 🐌 Slow |
| Dependencies | 🪶 3 core | - | 📦 20+ |
| Learning Curve | 📉 Low | Medium | Medium |
Documentation
Requirements
- Python 3.8+
- numpy >= 1.20.0
- pandas >= 1.3.0
- scipy >= 1.7.0
Optional:
- matplotlib >= 3.3.0 (for visualizations)
- seaborn >= 0.11.0 (for enhanced visualizations)
Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
# Clone the repository
git clone https://github.com/Ramku3639/datawhisk.git
cd datawhisk
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run code quality checks
black datawhisk tests
flake8 datawhisk tests
mypy datawhisk
Roadmap
v0.2.0 (Next Release)
- Statistical utilities
- Data validation helpers
- Extended visualization options
v0.3.0
- Time series utilities
- Text processing helpers
- Performance benchmarking tools
See CHANGELOG.md for release history.
License
MIT License - see LICENSE for details.
Citation
If you use datawhisk in your research, please cite:
@software{datawhisk,
author = {RamMohan Reddy K},
title = {datawhisk: A Practical Utility Library for Data Scientists},
year = {2025},
url = {https://github.com/Ramku3639/datawhisk}
}
Support
- 📧 Email: ramku3639@gmail.com
- 🐛 Issue Tracker
- 💬 Discussions
Built with ❤️ for the data science community
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file datawhisk-1.0.2.tar.gz.
File metadata
- Download URL: datawhisk-1.0.2.tar.gz
- Upload date:
- Size: 49.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5b636c34b1669525effebc2d039de581527f71e46bff5e86ca77a7758f99301
|
|
| MD5 |
bcf98f959f05b53d06a932f054d5ba34
|
|
| BLAKE2b-256 |
9fa6b3f805ba823f08ae0bdb0178d4d829d1abe7ae6497e3f3dd7a7c373834ac
|
File details
Details for the file datawhisk-1.0.2-py3-none-any.whl.
File metadata
- Download URL: datawhisk-1.0.2-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2151b731ececed6bd954e7f79125ffc81a20ee9219f85eb194ad2d1529fb3213
|
|
| MD5 |
1b3b40c3cb713a20d2271a5b7be3167e
|
|
| BLAKE2b-256 |
1bfee2d837a946ccceea8f51c26828d3cfdacdc99847779fd364754cc33a1254
|