美文网首页
【矩阵变换】

【矩阵变换】

作者: 何几时 | 来源:发表于2021-09-26 16:22 被阅读0次

    前提

    数据源是六轴IMU的采集数据

    image-20210918174522504.png

    Step 1 open() 打开文件存成二维数组

    from pandas import read_csv
    
    def readCSV(path=None):
        dataframe = read_csv(r"F:\skateboard_2\subject01\algo_material\arranged_files_step2\IMU_shank\01_102412.csv", header=0, delim_whitespace=None)
        dataframe = np.array(dataframe[:100])  # 读取前一百行
        print(dataframe.shape)
        return dataframe
    
    if __name__ == '__main__':
        aa = readCSV()
        
    """
    (100, 6)
    """
    

    Step 2 把多个二维数组进行拼接

    场景:==单个IMU==的情况下,把单个 (100,6) 的矩阵看作是一个样本,而我们有很多个样本,以下举例为3个样本,拼接在一起成 (3,100,6) 的大矩阵,要怎么做?

    答:利用 np.concatenate() 函数

    参考博客:https://blog.csdn.net/guofei_fly/article/details/85485173

    from pandas import read_csv
    from numpy import concatenate
    import numpy as np
    
    # step1
    def readCSV(path=None):
        dataframe = read_csv(r"F:\skateboard_2\subject01\algo_material\arranged_files_step2\IMU_shank\01_102412.csv", header=0, delim_whitespace=None)
        dataframe = np.array(dataframe[:100])  # 读取前一百行
        print(dataframe.shape)
        return dataframe
    
    # step2
    def combineMat(tupleList):
        res = concatenate(tupleList, axis=0)
        print(cc.shape)
        return res
    
    if __name__ == '__main__':
        aa = readCSV()
        bb = readCSV()
        cc = readCSV()
        dd = combineMat(([aa], [bb], [cc]))
        
    """
    (100, 6)
    (100, 6)
    (100, 6)
    (3,100, 6)
    """
    

    Step 3 4个IMU的情况,拼接成 (10,4,100,6)

    错误操作:aa = [aa for i in range(10)],并不能把得到 (10, 1, 100, 6) 矩阵格式

    from pandas import read_csv
    from numpy import concatenate
    import numpy as np
    
    
    # step1
    def readCSV(path=None):
        dataframe = read_csv(r"F:\skateboard_2\subject01\algo_material\arranged_files_step2\IMU_shank\01_102412.csv",
                             header=0, delim_whitespace=None)
        dataframe = np.array(dataframe[:100])  # 读取前一百行
        print(dataframe.shape)
        return dataframe
    
    
    # step2
    def combineMat(tupleList):
        res = concatenate(tupleList, axis=0)
        print(cc.shape)
        return res
    
    
    if __name__ == '__main__':
        aa = readCSV()
        bb = readCSV()
        cc = readCSV()
    
        aa = [aa for i in range(10)]
        print(np.array(aa).shape)
        
    
    """
    (10,100, 6)
    """
    

    正确操作:aa = [[aa] for i in range(10)]

    from pandas import read_csv
    from numpy import concatenate
    import numpy as np
    
    
    # step1
    def readCSV(path=None):
    
        dataframe = read_csv(path,
                             header=0, delim_whitespace=None)
        dataframe = np.array(dataframe[:100])  # 读取前一百行
        print(dataframe.shape)
        return dataframe
    
    
    # step2
    def combineMat(tupleList):
        res = concatenate(tupleList, axis=0)
        print(cc.shape)
        return res
    
    
    if __name__ == '__main__':
        aa = readCSV(r"F:\ProjectAurora\实验材料与数据存放\实验材料\Transformer资料\HARDataset\train\Inertial Signals\body_acc_y_train.txt")
        bb = readCSV(r"F:\ProjectAurora\实验材料与数据存放\实验材料\Transformer资料\HARDataset\train\Inertial Signals\body_acc_y_train.txt")
        cc = readCSV(r"F:\ProjectAurora\实验材料与数据存放\实验材料\Transformer资料\HARDataset\train\Inertial Signals\body_acc_y_train.txt")
    
        aaa = [[aa] for i in range(10)]
        bbb = [[bb] for i in range(10)]
        ccc = [[cc] for i in range(10)]
        ddd = concatenate((aaa, bbb, ccc), axis=1)  # axis是从左到右开始算,0 1 2 3 对应 (10,1,100,1)
        print(ddd.shape)
        # dd = combineMat(([aa], [bb], [cc]))
    
    """
    (10,3,100, 1)
    """
    
    
    

    相关文章

      网友评论

          本文标题:【矩阵变换】

          本文链接:https://www.haomeiwen.com/subject/vbgqnltx.html