npy/
npy.rs

1use std::collections::HashMap;
2
3use numrst::{io::DynamicNdArray, prelude::*};
4use tempfile::NamedTempFile;
5
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7    let tmpfile = NamedTempFile::new().unwrap();
8
9    let scalar = NdArray::new(1).unwrap();
10    let vector_f32 = NdArray::new(&[1.0f32, 2., 3.]).unwrap();
11    let matrix_f32 = NdArray::new(&[[1, 2, 3], [3, 4, 5]]).unwrap();
12    let ones_f32 = NdArray::<f32>::ones((2, 9)).unwrap();
13    let randn_f64 = NdArray::randn(0.0f64, 1., (1, 2, 3)).unwrap();
14    let fill_f64 = NdArray::full((2, 3, 4), 1.2).unwrap();
15    let arange_f64 = NdArray::arange(0., 10.).unwrap();
16    let trues = NdArray::trues((3, 4)).unwrap();
17    let booleans = NdArray::new(&[[true, false], [false, true]]).unwrap();
18
19    let mut ndarrays = HashMap::new();
20    ndarrays.insert("scalar".to_string(), DynamicNdArray::I32(scalar));
21    ndarrays.insert("vector_f32".to_string(), DynamicNdArray::F32(vector_f32));
22    ndarrays.insert("matrix_f32".to_string(), DynamicNdArray::I32(matrix_f32));
23    ndarrays.insert("ones_f32".to_string(), DynamicNdArray::F32(ones_f32));
24    ndarrays.insert("randn_f64".to_string(), DynamicNdArray::F64(randn_f64));
25    ndarrays.insert("fill_f64".to_string(), DynamicNdArray::F64(fill_f64));
26    ndarrays.insert("arange_f64".to_string(), DynamicNdArray::F64(arange_f64));
27    ndarrays.insert("trues".to_string(), DynamicNdArray::Bool(trues));
28    ndarrays.insert("booleans".to_string(), DynamicNdArray::Bool(booleans));
29
30    numrst::io::save_npz_file(&ndarrays, tmpfile.path()).unwrap();
31
32    let ndarrays = numrst::io::load_npz_file(tmpfile.path()).unwrap();
33    for (name, _) in ndarrays {
34        println!("{}", name);
35    }
36
37    Ok(())
38}