文章目录
假设我们有一个样本矩阵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 np
np. set_printoptions( suppress= True , precision= 3 )
class MeanVarianceMatrix ( object ) :
def __init__ ( self, matrix) :
self. matrix = matrix
self. 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_std
check_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
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **