關於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               #特征值相除,,會不會出現浮點,或者除不盡的情況.???


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM