关于python中矩阵的实现和矩阵的转置

python中矩阵的实现是靠序列,,,

序列有很多形式,

其实矩阵是现实生活中的东西,把现实生活中的结构转换到程序中。

就需要有个实现的方法,而这种路径是多种多样的。

 

 

下面给出一个把矩阵转换成python中的序列、

然后进行矩阵的转置

# -*- coding: utf-8 -*-


#下面的测试是关于转置的。
import numpy as np                #NumPy

minVals=np.array([1,2,3])
print(minVals)
data=np.tile(minVals,(3,1))      #这里调用了一个numpy的一个函数tile。它的作用是把minVals按照31列排布
print(data)       
data=data.T
print(data)

 

#下面是输出结果:
[1 2 3]


[[1 2 3]
 [1 2 3]
 [1 2 3]]


[[1 1 1]
 [2 2 2]
 [3 3 3]]

 

 

#下面给一个创建矩阵,归一化,转置的程序:

# -*- coding: utf-8 -*-


def autoNorm0(dataSet):                                  #这部分是归一化【】,按照行进行归一化
    """
    行的归一化
    可以看做是光谱自身的归一化,就是光谱的高度波动变成了0-1之间。
    这个需要验证
    """
    minVals=dataSet.min(1)                              #参数0应该是代表着按行计算.
    print(minVals)
    maxVals=dataSet.max(1)
    ranges=maxVals-minVals                              #这个是范围
    normDataSet=np.zeros(np.shape(dataSet))             
    
    m=dataSet.shape[1]                                  #这个是列数
    
    data=np.tile(minVals,(m,1)) 
    ranges_juzhen=np.tile(ranges,(m,1))
    
    ranges_juzhen=ranges_juzhen.T  
    data=data.T
    
    normDataSet=dataSet-data                            #因为归一化是从0开始的,归到0-1这个范围里面.
    normDataSet=normDataSet/ranges_juzhen               #特征值相除,,会不会出现浮点,或者除不尽的情况.???
    return normDataSet,ranges,minVals                   #要弄懂返回来的这几个参数是什么???



#下面的测试是关于转置的。
import numpy as np                           #NumPy

minVals=np.array([1,2,3])
print(minVals)

data=np.tile(minVals,(3,1))                  #把序列转换成数组
print("矩阵:")
print(data) 
print()

normDataSet,ranges,minVals=autoNorm0(data)   #归一化
print("矩阵归一化结果:")
print(normDataSet)

      
data=data.T                                  #进行矩阵的转置
print("转置矩阵:")
print(data)

normDataSet,ranges,minVals=autoNorm0(data)  #转置之后进行归一化
print("矩阵转置后归一化结果:")
print(normDataSet)

输出结果如下:

[1 2 3]
矩阵:
[[1 2 3]
 [1 2 3]
 [1 2 3]]

[1 1 1]
矩阵归一化结果:
[[0.  0.5 1. ]
 [0.  0.5 1. ]
 [0.  0.5 1. ]]
转置矩阵:
[[1 1 1]
 [2 2 2]
 [3 3 3]]
[1 2 3]
矩阵转置后归一化结果:
[[nan nan nan]
 [nan nan nan]
 [nan nan nan]]
D:/1论文/2018.0919/0919/program/0906/knn/ceshi.py:25: RuntimeWarning: invalid value encountered in true_divide
  normDataSet=normDataSet/ranges_juzhen               #特征值相除,,会不会出现浮点,或者除不尽的情况.???

posted @ 2018-09-29 09:02  GXTon  阅读(18877)  评论(0编辑  收藏  举报