ndarray2array
Convert an ndarray to a generic 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 ) ) );
}