zoukankan      html  css  js  c++  java
  • 关于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               #特征值相除,,会不会出现浮点,或者除不尽的情况.???

  • 相关阅读:
    IE设置代理后登录QQ再关闭代理仍然可以使用QQ
    ubuntu14.04下Qt开发环境搭建遇到的问题
    CButtonST使用技巧: CButtonST简介
    springboot webapi 支持跨域 CORS
    服务注册和发现 Eureka
    开发框架 springBoot
    springBoot springCloud
    springBoot 微服务
    springBoot AOP环绕增强、自定义注解、log4j2、MDC
    springBoot 热部署
  • 原文地址:https://www.cnblogs.com/chulin/p/9721852.html
Copyright © 2011-2022 走看看