Expand description
Sparse matrices.
Two main sparse matrices are implemented: SparseRowArray
and SparseColumnArray
.
Both support efficient incremental construction as well as efficient iteration over
nonzero entries. Data is stored as indices and data vectors, in a row-wise or column-wise fashion.
SparseRowArray
allows efficient iteration over rows, and SparseColumnArray
allows efficient
iteration over columns.
§Examples
§Creating and populating an array
use rustlearn::prelude::*;
let mut array = SparseRowArray::zeros(20, 5);
array.set(0, 2, 5.0);
println!("Entry at ({}, {}) is {}", 0, 2, array.get(0, 2));
§Iterating over an array
use rustlearn::prelude::*;
let array = SparseRowArray::from(&Array::from(&vec![vec![1.0, 2.0],
vec![3.0, 4.0]]));
for (row_idx, row) in array.iter_rows().enumerate() {
for (column_idx, value) in row.iter_nonzero() {
println!("Entry at ({}, {}) is {}", row_idx, column_idx, value);
}
}
Structs§
- Sparse
Array Iterator - Iterator over row or column views of a sparse matrix.
- Sparse
Array View - A view into a row or a column of an existing sparse matrix.
- Sparse
Array View Iterator - Iterator over nonzero entries of a
SparseArrayView
. - Sparse
Column Array - A sparse matrix with entries arranged column-wise.
- Sparse
RowArray - A sparse matrix with entries arranged row-wise.