nd_array
Crate for linear algebra that tries to have a similar api to numpy.
Creation
Range of values
let array = arange;
assert_eq!
Array full of zeros
let array = zeros;
assert_eq!
Array full of zeroes with the shape of another array
let array = arange.reshape;
let zeros_like = zeros_like;
assert_eq!
Array full of ones
let array = ones;
assert_eq!
Array full of ones with the shape of another array
let array = arange.reshape;
let ones_like = ones_like;
assert_eq!
Array full of a defined value
let array = full;
assert_eq!
Array full of a defined value with the shape of another array
let array = arange.reshape;
let full_like = full_like;
assert_eq!
Transformations
Reshape
// 2-D array:
// 1 2 3
// 4 5 6
let array = init;
// reshape it to the 3x2 2-D array:
// 1 2
// 3 4
// 5 6
let array = array.reshape;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Transpose
// 2-D array:
// 1 2 3
// 4 5 6
let array = init;
// tranpose the array to:
// 1 4
// 2 5
// 3 6
let array = array.transpose;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Flip
// 2-D array:
// 1 2 3
// 4 5 6
let array = init;
// flip axis = 0
// 4 5 6
// 1 2 3
let array = array.flip;
assert_eq!;
Swap axis
// 2-D array:
// 1 2 3
let array = init;
let swapped_array = array.swap_axes;
assert_eq!;
assert_eq!;
assert_eq!;
Flatten
// 2-D array:
// 1 2 3
// 4 5 6
let array = init;
let flatten_array = array.flatten;
assert_eq!
Operations
Negation
let array = init;
let neg_array = -array;
assert_eq!;
Add
let array = init;
let array2 = init;
let sum_array = array + array2;
assert_eq!;
Sub
let array = init;
let array2 = init;
let sub_array = array - array2;
assert_eq!;
Mul
let array = init;
let mul_array = array * 2;
assert_eq!;
Div
let array = init;
let div_array = array / 2;
assert_eq!;
Calculations
Max
// 2-D array:
// 0 1
// 2 3
let array = init;
// Find max
assert_eq!;
// Find index of max value if array was flattened
assert_eq!;
// Find max values across a specific axis
assert_eq!;
assert_eq!;
// Find indices of max values across a specific axis
assert_eq!;
assert_eq!;
Min
// 2-D array:
// 0 1
// 2 3
let array = init;
// Find min
assert_eq!;
// Find index of min value if array was flattened
assert_eq!;
// Find min values across a specific axis
assert_eq!;
assert_eq!;
// Find indices of min values across a specific axis
assert_eq!;
assert_eq!;
Clip
// Array:
// 0 1 2 3 4 5 6 7 8 9
let array = arange;
// Clip the values so that all of them are between 1 and 8
let clipped = array.clip;
assert_eq!;
PTP (Peak to Peak)
// Array:
// 4 9 2 10
// 6 9 7 12
let array = init;
// Find max - min across all members of the array
assert_eq!
// Find max - min across a specific axis
assert_eq!;
assert_eq!
Sum
// Array:
// 1 2
// 3 4
let array = arange.reshape;
// Calculate sum of all elements in the array
assert_eq!;
// Calculate sum of elements across a specific axis.
assert_eq!;
assert_eq!;
Product
// Array:
// 1 2
// 3 4
let array = arange.reshape;
// Calculate product of all elements in the array
assert_eq!;
// Calculate product of elements across a specific axis
assert_eq!;
assert_eq!;
Mean
// Array:
// 1 2
// 3 4
let array = arange.reshape;
// Calculate mean of all elements in the array
assert_eq!;
// Calculate mean of elements across a specific axis
assert_eq!;
assert_eq!;
Variance
// Array:
// 1 2
// 3 4
let array = init;
// Calculate variance of all elements in the array
assert_eq!;
// Calculate variance of elements across a specific axis
assert_eq!;
assert_eq!;