numpy recarray.var()函数| Python
在 numpy 中,数组可能具有包含字段的数据类型,类似于电子表格中的列。一个例子是[(a, int), (b, float)]
,其中数组中的每个条目都是一对 (int, float)。通常,使用诸如arr['a'] and arr['b']
类的字典查找来访问这些属性。
记录数组允许使用arr.a and arr.b
作为数组成员访问字段。 numpy.recarray.var()
函数沿给定轴返回数组元素的方差。
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.
代码#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