In numpy, arrays may have a data-types containing fields, analogous to columns in a spreadsheet. An example is [(a, int), (b, float)]
, where each entry in the array is a pair of (int, float). Normally, these attributes are accessed using dictionary lookups such as arr['a'] and arr['b']
.
Record arrays allow the fields to be accessed as members of the array, using arr.a and arr.b
. numpy.recarray.var()
function returns the variance of the array elements, along given axis.
Syntax :
numpy.recarray.var(axis=None, dtype=None, out=None, ddof=0, keepdims=False)
Parameters:
axis : [int or tuples of int] axis along which we want to calculate the variance. Otherwise, it will consider arr to be flattened (works on all the axis). axis = 0 means variance along the column and axis = 1 means variance along the row.
dtype : [data-type, optional] Type we desire while computing variance.
out : [ndarray, optional] A location into which the result is stored.
-> If provided, it must have a shape that the inputs broadcast to.
-> If not provided or None, a freshly-allocated array is returned.
ddof : [int, optional] Delta Degrees of Freedom”: the divisor used in the calculation is N – ddof, where N represents the number of elements. By default ddof is zero.
keepdims : [bool, optional] If this is set to True, the axes which are reduced are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the input array.Return : [ndarray] If out=None, returns a new array containing the variance; otherwise, a reference to the output array is returned.
Code #1 :
# Python program explaining # numpy.recarray.var() method # importing numpy as geek import numpy as geek # creating input array with 2 different field in_arr = geek.array([[( 5.0 , 2 ), ( 3.0 , - 4 ), ( 6.0 , 9 )], [( 9.0 , 1 ), ( 5.0 , 4 ), ( - 12.0 , - 7 )]], dtype = [( 'a' , float ), ( 'b' , int )]) print ( "Input array : " , in_arr) # convert it to a record array, # using arr.view(np.recarray) rec_arr = in_arr.view(geek.recarray) print ( "Record array of float: " , rec_arr.a) print ( "Record array of int: " , rec_arr.b) # applying recarray.var methods # to float record array along axis 1 out_arr = rec_arr.a.var(axis = 1 ) print ( "Output array containing variance along axis 1: " , out_arr) # applying recarray.var methods # to float record array along axis 0 out_arr = rec_arr.a.var(axis = 0 ) print ( "Output array containing variance along axis 0: " , out_arr) # applying recarray.var methods # to float record array along default axis out_arr = rec_arr.a.var() print ( "Output array containing variance along default axis : " , out_arr) # applying recarray.var methods # to int record array along axis 1 out_arr = rec_arr.b.var(axis = 1 ) print ( "Output array containing variance along axis 1: " , out_arr) # applying recarray.var methods # to int record array along axis 0 out_arr = rec_arr.b.var(axis = 0 ) print ( "Output array containing variance along axis 0: " , out_arr) # applying recarray.var methods # to int record array along default axis out_arr = rec_arr.b.var() print ( "Output array containing variance along default axis : " , out_arr) |
Input array : [[( 5., 2) ( 3., -4) ( 6., 9)] [( 9., 1) ( 5., 4) (-12., -7)]] Record array of float: [[ 5. 3. 6.] [ 9. 5. -12.]] Record array of int: [[ 2 -4 9] [ 1 4 -7]] Output array containing variance along axis 1: [ 1.55555556 82.88888889] Output array containing variance along axis 0: [ 4. 1. 81.] Output array containing variance along default axis : 46.22222222222222 Output array containing variance along axis 1: [28.22222222 21.55555556] Output array containing variance along axis 0: [ 0.25 16. 64. ] Output array containing variance along default axis : 27.138888888888882