column_summary/
column_summary.rs1use matten::Tensor;
6
7fn main() {
8 let data = Tensor::new(
9 vec![
10 2.0, 5.0, 10.0, 4.0, 7.0, 20.0, 6.0, 3.0, 15.0, 8.0, 11.0, 25.0, 10.0, 9.0, 30.0,
11 ],
12 &[5, 3],
13 );
14
15 let means = data.mean_axis(0);
16 let mins = data.min_axis(0);
17 let maxes = data.max_axis(0);
18 let centred = &data - &means;
19 let variances = (¢red * ¢red).mean_axis(0);
20 let stds: Vec<f64> = variances.as_slice().iter().map(|v| v.sqrt()).collect();
21 let stds_t = Tensor::new(stds, &[3]);
22
23 println!("col means = {:?}", means.as_slice());
24 println!("col mins = {:?}", mins.as_slice());
25 println!("col maxes = {:?}", maxes.as_slice());
26 println!("col stds = {:?}", stds_t.as_slice());
27
28 assert_eq!(means.shape(), &[3]);
29 println!("Column summary: OK");
30}