About stdlib...
We believe in a future in which the web is a preferred environment for numerical computation. To help realize this future, we've built stdlib. stdlib is a standard library, with an emphasis on numerical and scientific computation, written in JavaScript (and C) for execution in browsers and in Node.js.
The library is fully decomposable, being architected in such a way that you can swap out and mix and match APIs and functionality to cater to your exact preferences and use cases.
When you use stdlib, you can be absolutely certain that you are using the most thorough, rigorous, well-written, studied, documented, tested, measured, and high-quality code out there.
To join us in bringing numerical computing to the web, get started by checking us out on GitHub, and please consider financially supporting stdlib. We greatly appreciate your continued support!
Base ndarray.
npm install @stdlib/ndarray-base
Alternatively,
- To load the package in a website via a
script
tag without installation and bundlers, use the ES Module available on theesm
branch (see README). - If you are using Deno, visit the
deno
branch (see README for usage intructions). - For use in Observable, or in browser/node environments, use the Universal Module Definition (UMD) build available on the
umd
branch (see README).
The branches.md file summarizes the available branches and displays a diagram illustrating their relationships.
To view installation and usage instructions specific to each branch build, be sure to explicitly navigate to the respective README files on each branch, as linked to above.
var ns = require( '@stdlib/ndarray-base' );
Base ndarray.
var o = ns;
// returns {...}
assign( arrays )
: assign elements in an input ndarray to elements in an output ndarray.binaryLoopOrder( shape, stridesX, stridesY, stridesZ )
: reorder ndarray dimensions and associated strides for loop interchange.binaryBlockSize( dtypeX, dtypeY, dtypeZ )
: resolve a loop block size for multi-dimensional array tiled loops.bind2vind( shape, strides, offset, order, idx, mode )
: convert a linear index in an underlying data buffer to a linear index in an array view.broadcastArray( arr, shape )
: broadcast an ndarray to a specified shape.broadcastArrays( arrays )
: broadcast ndarrays to a common shape.broadcastScalar( value, dtype, shape, order )
: broadcast a scalar value to anndarray
having a specified shape.broadcastShapes( shapes )
: broadcast array shapes to a single shape.bufferCtors( dtype )
: ndarray data buffer constructors.bufferDataTypeEnum( buffer )
: return the data type enumeration constant of an ndarray data buffer.bufferDataType( buffer )
: return the data type of an ndarray data buffer.buffer( dtype, size )
: create a contiguous linear ndarray data buffer.bytesPerElement( dtype )
: return the number of bytes per element provided an underlying array data type.char2dtype( [ch] )
: return the data type string associated with a provided single letter character abbreviation.clampIndex( idx, max )
: restrict an index to the interval[0,max]
.ndarray( dtype, buffer, shape, strides, offset, order )
: create a multidimensional array.data( x )
: return the underlying data buffer of a provided ndarray.dtypeChar( [dtype] )
: return the single letter abbreviation for an underlying array data type.dtypeDesc( [dtype] )
: return the description for a specified data type.dtypeEnum2Str( dtype )
: return the data type string associated with an ndarray data type enumeration constant.dtypeResolveEnum( dtype )
: return the enumeration constant associated with a supported ndarray data type value.dtypeResolveStr( dtype )
: return the data type string associated with a supported ndarray data type value.dtypeStr2Enum( dtype )
: return the enumeration constant associated with an ndarray data type string.dtype( x )
: return the data type of a provided ndarray.dtype2c( dtype )
: return the C data type associated with a provided data type value.dtypes2signatures( dtypes, nin, nout )
: transform a list of array argument data types into a list of signatures.emptyLike( x )
: create an uninitialized ndarray having the same shape and data type as a provided ndarray.empty( dtype, shape, order )
: create an uninitialized ndarray having a specified shape and data type.expandDimensions( x, axis )
: expand the shape of an array by inserting a new dimension of size one at a specified axis.fill( x, value )
: fill an input ndarray with a specified value.flag( x, name )
: return a specified flag for a provided ndarray.flags( x, copy )
: return the flags of a provided ndarray.fliplr( x, writable )
: return a view of an input ndarray in which the order of elements along the last dimension is reversed.flipud( x, writable )
: return a view of an input ndarray in which the order of elements along the second-to-last dimension is reversed.forEach( arrays, fcn[, thisArg] )
: invoke a callback function once for each ndarray element.scalar2ndarrayLike( x, value )
: convert a scalar value to a zero-dimensional ndarray having the same data type as a provided ndarray.scalar2ndarray( value, dtype, order )
: convert a scalar value to a zero-dimensional ndarray.ind( idx, max, mode )
: return an index given an index mode.ind2sub( shape, strides, offset, order, idx, mode )
: convert a linear index to an array of subscripts.iterationOrder( strides )
: given a stride array, determine array iteration order.map( arrays, fcn[, thisArg] )
: apply a callback function to elements in an input ndarray and assign results to elements in an output ndarray.maxViewBufferIndex( shape, strides, offset )
: compute the maximum linear index in an underlying data buffer accessible to an array view.maybeBroadcastArray( arr, shape )
: broadcast an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.maybeBroadcastArrays( arrays )
: broadcast ndarrays to a common shape.metaDataProps( meta, dtypes, obj )
: define non-enumerable read-only properties which expose ndarray function meta data.minSignedIntegerDataType( value )
: determine the minimum ndarray data type for storing a provided signed integer value.minUnsignedIntegerDataType( value )
: determine the minimum ndarray data type for storing a provided unsigned integer value.minViewBufferIndex( shape, strides, offset )
: compute the minimum linear index in an underlying data buffer accessible to an array view.minmaxViewBufferIndex( shape, strides, offset )
: compute the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.ndarraylike2ndarray( x )
: convert an ndarray-like object to anndarray
.ndarraylike2object( x )
: convert anndarray
-like object to an object likely to have the same "shape".ndims( x )
: return the number of ndarray dimensions.nextCartesianIndex( shape, order, idx, dim )
: return the next Cartesian index (i.e., set of subscripts/dimension indices).nonsingletonDimensions( shape )
: return the number of non-singleton dimensions.normalizeIndex( idx, max )
: normalize an index to the interval[0,max]
.normalizeIndices( indices, max )
: normalize a list of indices to the interval[0,max]
.nullaryLoopOrder( shape, stridesX )
: reorder ndarray dimensions and associated strides for loop interchange.nullaryBlockSize( dtypeX )
: resolve a loop block size for multi-dimensional array tiled loops.nullary( arrays, fcn )
: apply a nullary callback and assign results to elements in an output ndarray.numelDimension( x, dim )
: return the size (i.e., number of elements) of a specified dimension for a provided ndarray.numel( shape )
: return the number of elements in an array.offset( x )
: return the index offset specifying the underlying buffer index of the first iterated ndarray element.order( x )
: return the layout order of a provided ndarray.outputPolicyEnum2Str( policy )
: return the policy string associated with an output ndarray data type policy enumeration constant.outputPolicyResolveEnum( policy )
: return the enumeration constant associated with a supported ndarray data type policy value.outputPolicyResolveStr( dtype )
: return the policy string associated with a supported ndarray data type policy value.outputPolicyStr2Enum( policy )
: return the enumeration constant associated with an output ndarray data type policy string.prependSingletonDimensions( x, n )
: prepend singleton dimensions.removeSingletonDimensions( x )
: remove singleton dimensions.reverseDimension( x, dim, writable )
: return a view of an input ndarray in which the order of elements along a specified dimension is reversed.reverse( x, writable )
: return a view of an input ndarray in which the order of elements along each dimension is reversed.serializeMetaData( x )
: serialize ndarray meta data.shape( x, copy )
: return the shape of a provided ndarray.shape2strides( shape, order )
: generate a stride array from an array shape.singletonDimensions( shape )
: return the number of singleton dimensions.sliceAssign( x, y, slice, strict )
: assign element values from a broadcasted inputndarray
to corresponding elements in an outputndarray
view.sliceDimensionFrom( x, dim, start, strict, writable )
: return a shifted view of an input ndarray along a specified dimension.sliceDimensionTo( x, dim, stop, strict, writable )
: return a truncated view of an input ndarray along a specified dimension.sliceDimension( x, dim, slice, strict, writable )
: return a view of an input ndarray when sliced along a specified dimension.sliceFrom( x, start, strict, writable )
: return a shifted view of an input ndarray.sliceTo( x, stop, strict, writable )
: return a truncated view of an input ndarray.slice( x, slice, strict, writable )
: return a view of an input ndarray.spreadDimensions( ndims, x, dims )
: expand the shape of an array to a specified dimensionality by spreading its dimensions to specified dimension indices and inserting dimensions of size one for the remaining dimensions.stride( x, dim )
: return the stride along a specified dimension for a provided ndarray.strides( x, copy )
: return the strides of a provided ndarray.strides2offset( shape, strides )
: determine the index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.strides2order( strides )
: determine the order of a multidimensional array based on a provided stride array.sub2ind( shape, strides, offset, ...subscripts, mode )
: convert subscripts to a linear index.ndarray2array( buffer, shape, strides, offset, order )
: convert an ndarray buffer to a generic array.toNormalizedIndices( indices, max )
: normalize a list of indices to the interval[0,max]
.toReversed( x )
: return a new ndarray where the order of elements of an input ndarray is reversed along each dimension.toUniqueNormalizedIndices( indices, max )
: return a list of unique indices after normalizing to the interval[0,max]
.transpose( x )
: transpose a matrix (or a stack of matrices).unaryBy( arrays, fcn, clbk[, thisArg] )
: apply a unary function to each element in an input ndarray according to a callback function and assign results to elements in an output ndarray.unaryLoopOrder( shape, stridesX, stridesY )
: reorder ndarray dimensions and associated strides for loop interchange.unaryOutputDataType( dtype, policy )
: resolve the output ndarray data type for a unary function.unaryBlockSize( dtypeX, dtypeY )
: resolve a loop block size for multi-dimensional array tiled loops.unary( arrays, fcn )
: apply a unary callback to elements in an input ndarray and assign results to elements in an output ndarray.vind2bind( shape, strides, offset, order, idx, mode )
: convert a linear index in an array view to a linear index in an underlying data buffer.wrapIndex( idx, max )
: wrap an index on the interval[0,max]
.zerosLike( x )
: create a zero-filled ndarray having the same shape and data type as a provided ndarray.zeros( dtype, shape, order )
: create a zero-filled ndarray having a specified shape and data type.
The namespace contains the following sub-namespaces:
assert
: base ndarray assertion utilities.
var objectKeys = require( '@stdlib/utils-keys' );
var ns = require( '@stdlib/ndarray-base' );
console.log( objectKeys( ns ) );
This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.
See LICENSE.
Copyright © 2016-2025. The Stdlib Authors.