Arraymancer
A tensor (Ndimensional array) project. Focus on machine learning, deep learning and numerical computing.
A tensor supports arbitrary types (floats, strings, objects ...).
EXPERIMENTAL: API may change and break.
Goals
The automatic backpropagation library NimRMAD needs to be generalized to vectors and matrices, 3D, 4D, 5D tensors for deep learning.
Unfortunately, attempts to use linalg's vector and matrix types were unsuccessful. Support for 3D+ tensors would also need more work.
This library aims to provided an efficient tensor/ndarray type. Focus will be on numerical computation (BLAS) and GPU support. The library will be flexible enough to represent arbitrary Ndimensional Arrays, especially for NLP word vectors.
Current status
EXPERIMENTAL: Arraymancer may summon Ragnarok and cause the heat death of the Universe.
Arraymancer's tensors currently support the following:

Wrapping any type: string, floats, object

Getting and setting value at a specific index (Caveat: negative indices support needs work)

Creating a tensor from deep nested sequences

Universal functions from Nim math module: cos, ln, sqrt... will work elementwise

Creating your own universal functions with
makeUniversal
,makeUniversalLocal
andfmap
.fmap
can even be used on functions with input/ouput of different types. 
Optimized Linear Algebra through BLAS (via nimblas)
For now only Matrix to Matrix multiplication is available, multiplication and addition for VectorVector, MatrixVector and MatrixMatrix are coming very soon.
Check syntax examples in the test folder.
Not prioritized
The following Numpylike functionality:
 slicing,
 iterating,
 assigning,
 statistics (mean, median, stddev ...)
will be added on an asneeded basis.