Crates.io | vaughan |
lib.rs | vaughan |
version | 0.1.0 |
source | src |
created_at | 2024-05-20 09:41:34.193122 |
updated_at | 2024-05-20 09:41:34.193122 |
description | Implementations of various scientific calculations a-la SciPy in Rust built on Polars. |
homepage | |
repository | https://github.com/savente93/vaughan |
max_upload_size | |
id | 1245555 |
size | 61,062 |
Vaughan is a Rust library designed to provide fast, reliable, and ergonomic implementations of various scientific, statistical, and data science-related concepts. Built on top of the powerful Polars library, Vaughan leverages the speed and efficiency of Polars to deliver high-performance computations. This library is part of the ambition to bring the SciPy/Scikit-learn stack to Polars & Rust. Vaughan is named in honor of Dorothy Vaughan, one of the black women mathematician and human computer who worked for NASA during the Space Race and were invaluable to the moon landing.
Add Vaughan to your Cargo.toml
mannually:
[dependencies]
vaughan = "0.1.0"
or by using cargo add
cargo add vaughan
Currently, Vaughan is only available for use through Rust, but I am planning to add Python bindings soon.
Here's a simple example to get you started adapted from the test suite:
use vaughan::error_metrics::binary_classification::*;
use polars::prelude::*;
fn main() {
let test = df!(
"predictions" => [0,1,1,1,0,1],
"truth" => [1,0,0,1,0,1]
)?;
println!("{}", accuracy(test.clone().lazy(), "predictions", "truth")?);
println!("{}", f1(test.clone().lazy(), "predictions", "truth")?);
println!("{}", recall(test.clone().lazy(), "predictions", "truth")?);
println!("{}", precision(test.clone().lazy(), "predictions", "truth")?);
}
I believe that non goals are as important as goals for a good and focused design. Here are some non goals for this project:
Vaughan very young, and currently not even ready to be called an alpha. It is little more than a prototype at this point. Therefore, expect breaking changes basically without warning and lots of missing features. However, I would very much like to expand it. Feature Requests, Bug Reports, Pull Requests, Questions, and any other form of constructive feedback is very welcome! This is a spare time project for me, so I can't promise any timeline, but here is a rough outline of the things I am hoping to add:
Thank you for using Vaughan! I hope it helps you with your scientific and data science endeavors.