awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
rust-ndarray avatar

rust-ndarray/ndarray

0
View on GitHub↗
4,290 stars·379 forks·Rust·Apache-2.0·12 viewsdocs.rs/ndarray↗

Ndarray

ndarray is a multidimensional array library for Rust that serves as a linear algebra framework and scientific computing tool. It provides the core infrastructure for creating and manipulating n-dimensional arrays, functioning as both a parallel array processor and a toolkit for numerical data analysis.

The library distinguishes itself by providing efficient slicing and memory views, allowing for data sharing without copying. It leverages optimized backend math libraries for high-speed matrix multiplication and distributes heavy mathematical iterations across multiple CPU threads to accelerate processing.

The project covers a broad range of mathematical operations, including element-wise arithmetic, axis-based data aggregation, and dot product computations. It also includes comprehensive utilities for array manipulation such as reshaping, flattening, stacking, and coordinate grid generation, alongside support for randomized array generation and serialization.

Features

  • Multidimensional Arrays - Provides the core infrastructure for managing and manipulating n-dimensional arrays and matrices.
  • Array View Creation - Produces read-only or mutable windows into existing data buffers without copying underlying elements.
  • Strided - Maps multidimensional indices to flat memory buffers using axis-specific step sizes for efficient zero-copy slicing.
  • Zero-Copy Array Views - Provides lightweight references to existing memory buffers to allow slicing and reshaping without data duplication.
  • Tensor Slicing and Indexing - Extracts specific elements or sub-regions of arrays using coordinate-based indexing and slicing.
  • Numeric Type Traits - Uses generics and numeric traits to apply mathematical operations across different numeric types and dimensions.
  • Array Layout Management - Modifies shape and stride information independently of the underlying data using dedicated reference types.
  • Array Slicing - Extracts sub-sections of arrays using arbitrary step sizes and negative indices.
  • Element-wise Array Operations - Executes high-performance element-wise operations and mathematical functions across multidimensional arrays.
  • Generalized Matrix Multiplications - Executes high-performance matrix product computations with support for scalar scaling.
  • High-Performance Array Arithmetic - Executes high-performance mathematical operations across arrays of varying dimensions using optimized routines.
  • Scientific Computing - Provides a computational framework for performing complex mathematical modeling and multi-dimensional array operations.
  • Linear Algebra Libraries - Serves as a high-performance framework for vector and matrix operations.
  • Linear Algebra Routines - Implements fundamental linear algebra operations including matrix multiplication and dot products.
  • Multi-Dimensional Arrays - Implements data structures that organize numeric elements into grids or higher-dimensional spaces.
  • Multidimensional Array Containers - Offers dense data structures supporting various memory layouts for numerical computing and data analysis.
  • N-Dimensional Array Libraries - Provides a comprehensive Rust library for creating and manipulating multidimensional arrays with efficient memory views.
  • Linear Algebra - Provides high-performance routines for vector and matrix operations, including dot products.
  • Parallel Array Processing - Increases processing speed by distributing array iterations and methods across multiple CPU threads.
  • Dot Product Computation - Calculates the inner product of two arrays, including those with dynamic dimensions.
  • Ownership and Borrowing - Uses Rust's ownership and borrowing semantics to separate data ownership from data access via unified interfaces.
  • Multidimensional Shape Handling - Implements runtime-defined vectors to support arrays with an arbitrary number of axes.
  • Dimension Squeezing - Removes dimensions of size one from an array to simplify its overall shape.
  • Scientific Array Serialization - Supports persisting and loading multidimensional arrays using scientific data formats.
  • Axis Permutation - Changes the order of dimensions or reverses the direction of specific axes in-place.
  • Parallel Iterators - Distributes element-wise operations and axis reductions across multiple CPU cores using parallel iterators.
  • BLAS Backend Integration - Leverages optimized backend math libraries for high-speed floating-point matrix multiplication.
  • Strided Window Generation - Generates overlapping windows of a specific size along an axis using a defined step size.
  • Ownership-Based Memory Management - Implements memory management using Rust's ownership and borrowing model to handle owned arrays and non-owning views.
  • Array Function Mapping - Applies custom functions to corresponding elements of multiple arrays in lock step with broadcasting support.
  • Array Combinations - Joins arrays together by stacking them along new axes or concatenating them along existing ones.
  • Array Collapsing - Collapses multidimensional arrays into one-dimensional sequences while preserving element order.
  • Array Reshaping - Changes the dimensions of an array while preserving elements and specifying memory layout order.
  • Array Splitting - Divides single arrays into multiple smaller views along a specified axis.
  • Dimensional Reductions - Reduces arrays by computing sums and other aggregations along specified dimensions.
  • BLAS and LAPACK Integrations - Provides interfaces to optimized BLAS libraries for high-performance linear algebra and matrix multiplication.
  • Coordinate Grid Generation - Builds regular grids of values to evaluate functions over a specific coordinate space.
  • Numerical Computation Accelerations - Accelerates mathematical processing by distributing array operations across multiple CPU threads.
  • Parallel Array Processors - Distributes heavy mathematical iterations and array methods across multiple CPU threads to accelerate performance.
  • Scientific Computing Libraries - N-dimensional array library for Rust.

Star history

Star history chart for rust-ndarray/ndarrayStar history chart for rust-ndarray/ndarray

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Ndarray

Similar open-source projects, ranked by how many features they share with Ndarray.
  • xtensor-stack/xtensorxtensor-stack avatar

    xtensor-stack/xtensor

    3,748View on GitHub↗

    xtensor is a C++ multidimensional array library for numerical computing that provides N-dimensional containers with an interface mirroring the NumPy API. It utilizes a lazy evaluation expression engine to defer numerical computations until assignment, which minimizes memory allocations and intermediate copies. The library features a foreign memory array adaptor that allows it to wrap external buffers, such as NumPy arrays, to perform numerical operations in-place without duplicating data. It further optimizes performance through lazy broadcasting and a system that manages the lifetime of temp

    C++c-plus-plus-14multidimensional-arraysnumpy
    View on GitHub↗3,748
  • dpilger26/numcppdpilger26 avatar

    dpilger26/NumCpp

    3,963View on GitHub↗

    NumCpp is a C++ framework and numerical computing library that provides a toolkit for multi-dimensional array management and mathematical routines. It functions as a C++ implementation of the NumPy ecosystem, offering a scientific computing framework for managing tensors and performing complex algebraic equations. The project enables high-performance array manipulation within a C++ environment without relying on a Python runtime. It distinguishes itself by providing a NumPy-like interface for executing linear algebra, managing multi-dimensional data structures, and performing numerical proces

    C++
    View on GitHub↗3,963
  • numpy/numpynumpy avatar

    numpy/numpy

    32,207View on GitHub↗

    NumPy is a foundational library for scientific computing in Python, providing a comprehensive framework for managing and manipulating large-scale numerical information. It centers on high-performance multidimensional array objects that serve as the primary data structure for complex mathematical operations and data analysis workflows. The library distinguishes itself through specialized mechanisms for handling multidimensional data, including advanced indexing, slicing, and broadcasting techniques that allow for efficient operations across arrays of varying shapes. It utilizes strided metadat

    Pythonnumpypython
    View on GitHub↗32,207
  • lyhue1991/eat_tensorflow2_in_30_dayslyhue1991 avatar

    lyhue1991/eat_tensorflow2_in_30_days

    9,933View on GitHub↗

    This project is a structured learning curriculum and technical reference for mastering deep learning with TensorFlow. It provides a comprehensive guide for building, training, and deploying neural networks, combining theoretical fundamentals with practical implementation examples. The repository distinguishes itself by covering the end-to-end machine learning workflow, from low-level tensor mathematics and linear algebra to the creation of complex model architectures. It includes specific guidance on developing data pipelines for diverse data types, such as images, text, and time-series seque

    Pythontensorflowtensorflow-examplestensorflow-tutorial
    View on GitHub↗9,933
See all 30 alternatives to Ndarray→

Frequently asked questions

What does rust-ndarray/ndarray do?

ndarray is a multidimensional array library for Rust that serves as a linear algebra framework and scientific computing tool. It provides the core infrastructure for creating and manipulating n-dimensional arrays, functioning as both a parallel array processor and a toolkit for numerical data analysis.

What are the main features of rust-ndarray/ndarray?

The main features of rust-ndarray/ndarray are: Multidimensional Arrays, Array View Creation, Strided, Zero-Copy Array Views, Tensor Slicing and Indexing, Numeric Type Traits, Array Layout Management, Array Slicing.

What are some open-source alternatives to rust-ndarray/ndarray?

Open-source alternatives to rust-ndarray/ndarray include: xtensor-stack/xtensor — xtensor is a C++ multidimensional array library for numerical computing that provides N-dimensional containers with an… dpilger26/numcpp — NumCpp is a C++ framework and numerical computing library that provides a toolkit for multi-dimensional array… numpy/numpy — NumPy is a foundational library for scientific computing in Python, providing a comprehensive framework for managing… lyhue1991/eat_tensorflow2_in_30_days — This project is a structured learning curriculum and technical reference for mastering deep learning with TensorFlow.… arrayfire/arrayfire — ArrayFire is a hardware-agnostic compute framework and JIT-compiled tensor engine designed for high-performance… torch/torch7 — Torch7 is a scientific computing environment and tensor computation library used for deep learning research and…