Fill an input ndarray according to a callback function.
var fillBy = require( '@stdlib/ndarray/base/fill-by' );Fills an input ndarray according to a callback function.
var array = require( '@stdlib/ndarray/array' );
function fcn() {
return 10.0;
}
var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ] );
// returns <ndarray>[ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ]
var out = fillBy( x, fcn );
// returns <ndarray>[ [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ] ]
var bool = ( out === x );
// returns trueThe function accepts the following arguments:
- x: array-like object containing an input ndarray.
- fcn: callback function.
- thisArg: callback function execution context (optional).
To set the callback function execution context, provide a thisArg.
var array = require( '@stdlib/ndarray/array' );
function fcn( value ) {
return value * 10.0;
}
var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ] );
// returns <ndarray>[ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ]
var ctx = {
'factor': 10.0
};
var out = fillBy( x, fcn, ctx );
// returns <ndarray>[ [ [ 10.0, 20.0 ] ], [ [ 30.0, 40.0 ] ], [ [ 50.0, 60.0 ] ] ]
var bool = ( out === x );
// returns true-
A provided ndarray should be an object with the following properties:
- dtype: data type.
- data: data buffer.
- shape: dimensions.
- strides: stride lengths.
- offset: index offset.
- order: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).
-
The callback function is provided the following arguments:
- value: current array element.
- indices: current array element indices.
- arr: the input ndarray.
-
The function mutates the input ndarray.
-
The function assumes that each element in the underlying input ndarray data buffer has one, and only one, corresponding element in input ndarray view (i.e., a provided ndarray is not a broadcasted ndarray view).
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var zeros = require( '@stdlib/ndarray/zeros' );
var fillBy = require( '@stdlib/ndarray/base/fill-by' );
// Create a zero-filled ndarray:
var x = zeros( [ 5, 2 ], {
'dtype': 'generic'
});
console.log( ndarray2array( x ) );
// Fill the ndarray with random values:
fillBy( x, discreteUniform( -100, 100 ) );
console.log( ndarray2array( x ) );