use matten::Tensor;
use matten_data::Table;
fn main() -> Result<(), matten_data::MattenDataError> {
let csv = "\
region,sales,cost
north,100,40
south,150,45
east,120,55";
let tensor: Tensor = Table::from_csv_str(csv)?
.select_columns(["sales", "cost"])?
.try_numeric()?
.to_tensor()?;
assert_eq!(tensor.shape(), &[3, 2]);
assert_eq!(tensor.as_slice(), &[100.0, 40.0, 150.0, 45.0, 120.0, 55.0]);
let column_means = tensor.mean_axis(0);
println!("shape : {:?}", tensor.shape());
println!("column means : {:?}", column_means.as_slice());
assert_eq!(column_means.shape(), &[2]);
assert_eq!(
column_means.as_slice(),
&[(100.0 + 150.0 + 120.0) / 3.0, (40.0 + 45.0 + 55.0) / 3.0]
);
println!("data_04_to_tensor: OK");
Ok(())
}