Crates.io | dendritic-ndarray |
lib.rs | dendritic-ndarray |
version | 1.5.0 |
source | src |
created_at | 2024-10-27 18:36:28.192323 |
updated_at | 2024-11-01 19:42:51.803764 |
description | NDArray Package for dendritic |
homepage | |
repository | |
max_upload_size | |
id | 1424877 |
size | 98,635 |
This crate is the numerical computing crate to work with N Dimensional values. The operations for this numerical computing library are broken down by aggregate, binary, scalar and unary operations. This crate serves as the base depedencies for most numerical computing for all the machine learning algorithms dendritic has to offer
The dendritic project is a toy machine learning library built for learning and research purposes. It is not advised by the maintainer to use this library as a production ready machine learning library. This is a project that is still very much a work in progress.
Currently the numerical operations are only supported for f64
types. This will change in future releases.
These are some examples of using the dendritic_ndarray
create with some basic operations
use dendritic_ndarray::ndarray::NDArray;
use dendritic_ndarray::ops::*;
fn main() {
// Create 2 instance of ndarrays with a shape of (2,3) for testing binary operations
let x: NDArray<f64> = NDArray::array(vec![2, 3], vec![0.0,0.0,1.0,1.0,2.0,2.0]).unwrap();
let y: NDArray<f64> = NDArray::array(vec![2, 3], vec![0.0,0.0,1.0,1.0,2.0,2.0]).unwrap();
// perform add operation
let add_result : NDArray<f64> = x.add(y).unwrap();
// save result to json file
add_result.save("name_of_saved_ndarray").unwrap();
// load result back to new ndarray
let loaded = NDArray::load("name_of_saved_ndarray").unwrap();
}
These are some examples of using the dendritic_ndarray
with the unary operations.
Unary operations involve transoforming or modifying the contents of an ndarray and then returning the transformed result.
use dendritic_ndarray::ndarray::NDArray;
use dendritic_ndarray::ops::*;
fn main() {
// Create instance of ndarray, multiply by f64 scalar value
let x: NDArray<f64> = NDArray::array(vec![2, 3], vec![0.0,0.0,1.0,1.0,2.0,2.0]).unwrap();
// perform transpose operation
let y : NDArray<f64> = x.transpose().unwrap(); // will return result with shape (3, 2)
}
These are some examples of using the dendritic_ndarray
with the scalar operations.
Scalar operations involve an ndarray
and a scalar value like an f64
.
use dendritic_ndarray::ndarray::NDArray;
use dendritic_ndarray::ops::*;
fn main() {
// Create instance of ndarray, multiply by f64 scalar value
let x: NDArray<f64> = NDArray::array(vec![2, 3], vec![0.0,0.0,1.0,1.0,2.0,2.0]).unwrap();
let y: f64 = 10.0;
// perform add operation
let scalar_result : NDArray<f64> = x.scalar_add(y).unwrap();
}
These are some examples of using the dendritic_ndarray
with the aggregate operations.
Aggregate operations reduce the dimension or result of an operation on an ndarray.
An example of this is statistical operations like taking the average or summing all values.
use dendritic_ndarray::ndarray::NDArray;
use dendritic_ndarray::ops::*;
fn main() {
// Create instance of ndarray, multiply by f64 scalar value
let x: NDArray<f64> = NDArray::array(vec![2, 3], vec![0.0,0.0,1.0,1.0,2.0,2.0]).unwrap();
// perform add operation
let x_avg: f64 = x.avg();
}