This crate achieves the functionality of sklearn's train_test_split to generate splits of the data (in this case, a slice), generalized for an arbitrary number of splits. It both provides functions (see split_parts) that work on slices and iterator traits (see PartsSplit) to work with streams of data.
Check out the examples in the repository for more information.
use rand_split::split_parts;
use std::convert::TryInto;
let mut data = [1, 2, 3, 4, 5, 6, 8, 9, 10];
let [train, test, valid]: [&mut [u8]; 3] = split_parts(&mut data, &[0.4, 0.2, 0.4])
.try_into()
.expect("Works, length (3) comes from arguments.");
Licensed under either of
- 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)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
README.md is automatically generated on CI using cargo-readme. Please, modify README.tpl or lib.rs instead (check the github worflow for more details).