8 releases (breaking)
0.6.0 | Oct 31, 2023 |
---|---|
0.5.1 | Sep 1, 2023 |
0.4.0 | Jul 24, 2023 |
0.3.0 | May 31, 2023 |
0.0.0 | Feb 24, 2023 |
#688 in Data structures
440KB
7K
SLoC
arr-rs
Crate
Implementation of numpy-inspired multidimensional, generic arrays.
Documentation of the crate is available here
How to use
[dependencies]
arr-rs = "0.6.0"
Examples
// import the crate
use arr_rs::prelude::*;
// create an array: (4 elements, 2 dimensions)
let arr = Array::<i32>::new(vec![1, 2, 3, 4], vec![2, 2]);
// create same array using macro:
let arr: Array::<i32> = array!([[1, 2], [3, 4]]);
// create random array with the same shape:
let arr = Array::<i32>::rand(vec![2, 2]);
// array supports display and pretty display
let arr: Array<f64> = array!([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
println!("{arr}");
println!("{arr:#}");
// perform some chained operations on array:
let res = arr
.map(|item| item * 2)
.filter(|item| item % 3 == 0)
.ravel()
.slice(0..2);
Benchmark
Benchmark results can be found here
License
This project is licensed under either of the following licenses, at your option:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Dependencies
~310KB