Compute the arithmetic mean along one or more ndarray dimensions using a two-pass error correction algorithm.
The arithmetic mean is defined as
var meanpn = require( '@stdlib/stats/meanpn' );Computes the arithmetic mean along one or more ndarray dimensions using a two-pass error correction algorithm.
var array = require( '@stdlib/ndarray/array' );
var x = array( [ 1.0, 2.0, -2.0, 4.0 ] );
var y = meanpn( x );
// returns <ndarray>[ 1.25 ]The function has the following parameters:
- x: input ndarray. Must have a real-valued or "generic" data type.
- options: function options (optional).
The function accepts the following options:
- dims: list of dimensions over which to perform a reduction. If not provided, the function performs a reduction over all elements in a provided input ndarray.
- dtype: output ndarray data type. Must be a real-valued floating-point or "generic" data type.
- keepdims: boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions. Default:
false.
By default, the function performs a reduction over all elements in a provided input ndarray. To perform a reduction over specific dimensions, provide a dims option.
var array = require( '@stdlib/ndarray/array' );
var x = array( [ 1.0, 2.0, -2.0, 4.0 ], {
'shape': [ 2, 2 ],
'order': 'row-major'
});
// returns <ndarray>[ [ 1.0, 2.0 ], [ -2.0, 4.0 ] ]
var y = meanpn( x, {
'dims': [ 0 ]
});
// returns <ndarray>[ -0.5, 3.0 ]
y = meanpn( x, {
'dims': [ 1 ]
});
// returns <ndarray>[ 1.5, 1.0 ]
y = meanpn( x, {
'dims': [ 0, 1 ]
});
// returns <ndarray>[ 1.25 ]By default, the function excludes reduced dimensions from the output ndarray. To include the reduced dimensions as singleton dimensions, set the keepdims option to true.
var array = require( '@stdlib/ndarray/array' );
var x = array( [ 1.0, 2.0, -2.0, 4.0 ], {
'shape': [ 2, 2 ],
'order': 'row-major'
});
// returns <ndarray>[ [ 1.0, 2.0 ], [ -2.0, 4.0 ] ]
var y = meanpn( x, {
'dims': [ 0 ],
'keepdims': true
});
// returns <ndarray>[ [ -0.5, 3.0 ] ]
y = meanpn( x, {
'dims': [ 1 ],
'keepdims': true
});
// returns <ndarray>[ [ 1.5 ], [ 1.0 ] ]
y = meanpn( x, {
'dims': [ 0, 1 ],
'keepdims': true
});
// returns <ndarray>[ [ 1.25 ] ]By default, the function returns an ndarray having a data type determined by the function's output data type policy. To override the default behavior, set the dtype option.
var getDType = require( '@stdlib/ndarray/dtype' );
var array = require( '@stdlib/ndarray/array' );
var x = array( [ 1.0, 2.0, -2.0, 4.0 ], {
'dtype': 'generic'
});
var y = meanpn( x, {
'dtype': 'float64'
});
// returns <ndarray>
var dt = String( getDType( y ) );
// returns 'float64'Computes the arithmetic mean along one or more ndarray dimensions using a two-pass error correction algorithm and assigns results to a provided output ndarray.
var array = require( '@stdlib/ndarray/array' );
var zeros = require( '@stdlib/ndarray/zeros' );
var x = array( [ 1.0, 2.0, -2.0, 4.0 ] );
var y = zeros( [] );
var out = meanpn.assign( x, y );
// returns <ndarray>[ 1.25 ]
var bool = ( out === y );
// returns trueThe method has the following parameters:
- x: input ndarray. Must have a real-valued or "generic" data type.
- out: output ndarray.
- options: function options (optional).
The method accepts the following options:
- dims: list of dimensions over which to perform a reduction. If not provided, the function performs a reduction over all elements in a provided input ndarray.
- Setting the
keepdimsoption totruecan be useful when wanting to ensure that the output ndarray is broadcast-compatible with ndarrays having the same shape as the input ndarray. - The output data type policy only applies to the main function and specifies that, by default, the function must return an ndarray having a real-valued floating-point or "generic" data type. For the
assignmethod, the output ndarray is allowed to have any supported output data type.
var uniform = require( '@stdlib/random/uniform' );
var getDType = require( '@stdlib/ndarray/dtype' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var meanpn = require( '@stdlib/stats/meanpn' );
// Generate an array of random numbers:
var x = uniform( [ 5, 5 ], 0.0, 20.0 );
console.log( ndarray2array( x ) );
// Perform a reduction:
var y = meanpn( x, {
'dims': [ 0 ]
});
// Resolve the output array data type:
var dt = getDType( y );
console.log( dt );
// Print the results:
console.log( ndarray2array( y ) );- Neely, Peter M. 1966. "Comparison of Several Algorithms for Computation of Means, Standard Deviations and Correlation Coefficients." Communications of the ACM 9 (7). Association for Computing Machinery: 496–99. doi:10.1145/365719.365958.
- Schubert, Erich, and Michael Gertz. 2018. "Numerically Stable Parallel Computation of (Co-)Variance." In Proceedings of the 30th International Conference on Scientific and Statistical Database Management. New York, NY, USA: Association for Computing Machinery. doi:10.1145/3221269.3223036.