0.2.1 • Published 3 months ago
@stdlib/ndarray-to-array v0.2.1
ndarray2array
Convert an ndarray to a generic array.
Installation
npm install @stdlib/ndarray-to-array
Usage
var ndarray2array = require( '@stdlib/ndarray-to-array' );
ndarray2array( x )
Converts an ndarray to a generic array (which may include nested arrays).
var ndarray = require( '@stdlib/ndarray-ctor' );
var buffer = [ 1, 2, 3, 4 ];
var shape = [ 2, 2 ];
var order = 'row-major';
var strides = [ 2, 1 ];
var offset = 0;
var x = ndarray( 'generic', buffer, shape, strides, offset, order );
// returns <ndarray>
var out = ndarray2array( x );
// returns [ [ 1, 2 ], [ 3, 4 ] ]
Examples
var shape2strides = require( '@stdlib/ndarray-base-shape2strides' );
var strides2offset = require( '@stdlib/ndarray-base-strides2offset' );
var discreteUniform = require( '@stdlib/random-base-discrete-uniform' );
var zeroTo = require( '@stdlib/array-base-zero-to' );
var ndarray = require( '@stdlib/ndarray-ctor' );
var ndarray2array = require( '@stdlib/ndarray-to-array' );
// Create a data buffer:
var buffer = zeroTo( 27 );
// Specify array meta data:
var shape = [ 3, 3, 3 ];
var order = 'column-major';
var ndims = shape.length;
// Compute array meta data:
var strides = shape2strides( shape, order );
var offset = strides2offset( shape, strides );
// Print array information:
console.log( '' );
console.log( 'Dims: %s', shape.join( 'x' ) );
// Randomly flip strides and convert an ndarray to a nested array...
var arr;
var i;
var j;
for ( i = 0; i < 20; i++ ) {
j = discreteUniform( 0, ndims-1 );
strides[ j ] *= -1;
offset = strides2offset( shape, strides );
console.log( '' );
console.log( 'Strides: %s', strides.join( ',' ) );
console.log( 'Offset: %d', offset );
arr = ndarray( 'generic', buffer, shape, strides, offset, order );
console.log( JSON.stringify( ndarray2array( arr ) ) );
}
See Also
@stdlib/ndarray-array
: multidimensional arrays.@stdlib/ndarray-ctor
: multidimensional array constructor.
Notice
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.
Community
License
See LICENSE.
Copyright
Copyright © 2016-2024. The Stdlib Authors.