Compute the minimum value of a one-dimensional ndarray via a callback function, ignoring
NaNvalues.
var nanminBy = require( '@stdlib/stats/base/ndarray/nanmin-by' );Computes the minimum value of a one-dimensional ndarray via a callback function, ignoring NaN values.
var ndarray = require( '@stdlib/ndarray/base/ctor' );
function clbk( value ) {
return value * 2.0;
}
var xbuf = [ 1.0, -2.0, NaN, 2.0 ];
var x = new ndarray( 'generic', xbuf, [ 4 ], [ 1 ], 0, 'row-major' );
var v = nanminBy( [ x ], clbk );
// returns -4.0The function has the following parameters:
- arrays: array-like object containing a one-dimensional input ndarray.
- clbk: callback function.
- thisArg: callback execution context (optional).
The invoked callback is provided three arguments:
- value: current array element.
- idx: current array element index.
- array: input ndarray.
To set the callback execution context, provide a thisArg.
var ndarray = require( '@stdlib/ndarray/base/ctor' );
function clbk( value ) {
this.count += 1;
return value * 2.0;
}
var xbuf = [ 1.0, -2.0, NaN, 2.0 ];
var x = new ndarray( 'generic', xbuf, [ 4 ], [ 1 ], 0, 'row-major' );
var ctx = {
'count': 0
};
var v = nanminBy( [ x ], clbk, ctx );
// returns -4.0
var count = ctx.count;
// returns 4- If provided an empty one-dimensional ndarray, the function returns
NaN. - A provided callback function should return a numeric value.
- If a provided callback function returns
NaN, the value is ignored. - If a provided callback function does not return any value (or equivalently, explicitly returns
undefined), the value is ignored.
var filledarrayBy = require( '@stdlib/array/filled-by' );
var bernoulli = require( '@stdlib/random/base/bernoulli' );
var uniform = require( '@stdlib/random/base/uniform' );
var ndarray = require( '@stdlib/ndarray/base/ctor' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var nanminBy = require( '@stdlib/stats/base/ndarray/nanmin-by' );
function rand() {
if ( bernoulli( 0.2 ) > 0 ) {
return NaN;
}
return uniform( -50.0, 50.0 );
}
function clbk( value ) {
return value * 2.0;
}
var xbuf = filledarrayBy( 10, 'generic', rand );
var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );
console.log( ndarray2array( x ) );
var v = nanminBy( [ x ], clbk );
console.log( v );