文章目录
假设我们有一个样本矩阵X,每一列表示一个样本,现在我们要把样本转换成均值为0,方差为1的样本矩阵 X s t a n d a r d = X − μ s \begin{equation} X_{standard}=\frac{X-\mu}{s} \end{equation} X s t an d a r d = s X − μ python 测试代码如下:
import numpy as npnp. set_printoptions( suppress= True , precision= 3 ) class MeanVarianceMatrix ( object ) : def __init__ ( self, matrix) : self. matrix = matrixself. standard_matrix = np. zeros_like( self. matrix) def get_standard_matrix ( self) : my_mean = np. mean( self. matrix, axis= 0 ) my_std = np. std( self. matrix, axis= 0 ) self. standard_matrix = ( self. matrix - my_mean) / my_stdcheck_mean = np. mean( self. standard_matrix) check_var = np. var( self. standard_matrix) print ( f"*" * 50 ) print ( f"matrix=\n { self. matrix} " ) print ( f"standard_matrix=\n { self. standard_matrix} " ) print ( f"check_mean= { round ( check_mean) } " ) print ( f"check_var= { round ( check_var) } " ) print ( f"*" * 50 ) if __name__ == "__main__" : my_matrix_list = [ np. random. randint( 1 , 20 , ( 3 , 3 ) ) for _ in range ( 5 ) ] my_matrix = np. random. randint( 1 , 10 , ( 3 , 3 ) ) for i_matrix in my_matrix_list: my_stand = MeanVarianceMatrix( i_matrix) my_stand. get_standard_matrix( )
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
matrix=
[ [ 8 10 9 ] [ 7 9 19 ] [ 1 15 1 ] ]
standard_matrix=
[ [ 0.863 - 0.508 - 0.091 ] [ 0.539 - 0.889 1.268 ] [ - 1.402 1.397 - 1.177 ] ]
check_mean= 0
check_var= 1
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
matrix=
[ [ 13 7 18 ] [ 12 2 4 ] [ 16 6 11 ] ]
standard_matrix=
[ [ - 0.392 0.926 1.225 ] [ - 0.981 - 1.389 - 1.225 ] [ 1.373 0.463 0 . ] ]
check_mean= 0
check_var= 1
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
matrix=
[ [ 19 16 1 ] [ 10 9 1 ] [ 10 13 10 ] ]
standard_matrix=
[ [ 1.414 1.162 - 0.707 ] [ - 0.707 - 1.279 - 0.707 ] [ - 0.707 0.116 1.414 ] ]
check_mean= 0
check_var= 1
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
matrix=
[ [ 4 5 12 ] [ 8 13 5 ] [ 6 6 7 ] ]
standard_matrix=
[ [ - 1.225 - 0.843 1.359 ] [ 1.225 1.405 - 1.019 ] [ 0 . - 0.562 - 0.34 ] ]
check_mean= 0
check_var= 1
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
matrix=
[ [ 5 14 17 ] [ 6 10 4 ] [ 11 11 5 ] ]
standard_matrix=
[ [ - 0.889 1.373 1.411 ] [ - 0.508 - 0.981 - 0.79 ] [ 1.397 - 0.392 - 0.621 ] ]
check_mean= 0
check_var= 1
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **