pub fn standardize_columns(x: &Tensor) -> Result<Tensor, MattenMlprepError>Expand description
Standardizes each column to zero mean and unit (population) standard
deviation: out[i,j] = (x[i,j] - mean_j) / std_j.
std_j uses the population formula (divide by n), matching scikit-learn’s
StandardScaler.
§Errors
MattenMlprepError::ExpectedMatrixifxis not rank-2.MattenMlprepError::ZeroVarianceif any column is constant.MattenMlprepError::DynamicTensor(with thedynamicfeature) ifxis dynamic.
use matten::Tensor;
use matten_mlprep::standardize_columns;
// Column 0: [1, 3] -> mean 2, std 1 -> [-1, 1]; column 1: [10, 20] -> [-1, 1].
let x = Tensor::new(vec![1.0, 10.0, 3.0, 20.0], &[2, 2]);
let z = standardize_columns(&x).unwrap();
assert_eq!(z.as_slice(), &[-1.0, -1.0, 1.0, 1.0]);