ndarray2json

Serialize an ndarray as a JSON object.

Usage

var ndarray2json = require( '@stdlib/ndarray/to-json' );

ndarray2json( x )

Serializes an ndarray as a JSON object.

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 = ndarray2json( x );
// returns { 'type': 'ndarray', 'dtype': 'generic', 'flags': {...}, 'offset': 0, 'order': 'row-major', 'shape': [ 3, 2 ], 'strides': [ 2, 1 ], 'data': [ 1.0, 2.0, 3.0, 4.0 ] }

Notes

  • The function does not serialize data outside of the buffer defined by the ndarray view.

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 ndarray2json = require( '@stdlib/ndarray/to-json' );

// 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 JSON...
var arr;
var i;
for ( i = 0; i < 20; i++ ) {
    strides[ discreteUniform( 0, ndims-1 ) ] *= -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( ndarray2json( arr ) ) );
}
Did you find this page helpful?