• Numpy的学习4-array的合并


    import numpy as np
    
    A = np.array([1, 1, 1])
    B = np.array([2, 2, 2])
    
    print(np.vstack((A, B)))  # vertical(垂直的) stack(堆)
    """
    [[1,1,1]
     [2,2,2]]
    """
    
    C = np.vstack((A,B))
    print(A.shape,C.shape)
    # 从打印出的结果来看,A仅仅是一个拥有3项元素的数组(数列),而合并后得到的C是一个2行3列的矩阵。
    # (3,) (2,3)
    # vertical stack本身属于一种上下合并
    # 转置操作
    
    
    '''
    horizontal stack 表示水平线合并 也就是左右合并
    '''
    D = np.hstack((A,B))       # horizontal stack
    
    print(D)
    # [1,1,1,2,2,2]
    
    print(A.shape,D.shape)
    # (3,) (6,)
    
    
    '''
    说完了array的合并,稍微提及一下转置的操作
    当是一维的数组的时候 就无法实现转置 因为他不是一个矩阵
    此时就要借助其他函数操作进行转置
    '''
    
    print(A[np.newaxis,:]) #可以看到加一个newaxis表示的是加一个维度
    # [[1 1 1]]
    
    print(A[np.newaxis,:].shape)
    # (1,3)    表示一行三列的矩阵
    
    print(A[:,np.newaxis])  #可以看到newaixs表示的就是加1
    """
    [[1]
    [1]
    [1]]
    """
    
    print(A[:,np.newaxis].shape)
    # (3,1)
    
    
    '''
    结合上面所学的知识可以把它综合起来
    '''
    print('----分隔-----')
    A = np.array([1, 1, 1])[:, np.newaxis]#变成一个三行1列的矩阵
    B = np.array([2, 2, 2])[:, np.newaxis]
    
    C = np.vstack((A, B))  # vertical stack  垂直合并    6行1列
    D = np.hstack((A, B))  # horizontal stack   水平合并    3行2列
    
    print(D)
    """
    [[1 2]
    [1 2]
    [1 2]]
    """
    
    print(A.shape, D.shape)
    # (3,1) (3,2)
    
    '''
    当你的合并操作需要针对多个矩阵或序列时,借助concatenate函数可能会让你使用起来比前述的函数更加方便:
    涉及到多个矩阵和序列的操作
    '''
    
    C = np.concatenate((A,B,B,A),axis=0)
    
    print(C)
    """
    array([[1],
           [1],
           [1],
           [2],
           [2],
           [2],
           [2],
           [2],
           [2],
           [1],
           [1],
           [1]])
    """
    
    D = np.concatenate((A,B,B,A),axis=1)
    
    print(D)
    """
    array([[1, 2, 2, 1],
           [1, 2, 2, 1],
           [1, 2, 2, 1]])
    """
    

     np.vstack((a,b))将数组上下合并

    np.hstack((a,b))将数组左右合并 

    可以有选择性的对数组进行合并操作,输入的参数是一个元组

    A[np.newaxis,:]表示增加一个新的维度,因为知道一位数组不是矩阵,无法进行转置

    当有多个矩阵或者数列需要合并的时候选择concatenate,可选axis参数

  • 相关阅读:
    MySQL next-key lock 加锁范围是什么?
    使用 Docker 安装并连接 MySQL
    Mac 常用软件推荐 —— Java 开发工程师
    Toolkit 大更新:UI 更美观,用起来更方便!
    工作中的设计模式 —— 建造者模式
    工作中的设计模式 —— 策略模式
    工作中的设计模式 —— 原型模式
    Centos7 安装Oracle记录
    Centos7 常用命令和自己平时使用命令
    AutoHotKey 简易自动化脚本的一些资料
  • 原文地址:https://www.cnblogs.com/simon-idea/p/9571274.html
Copyright © 2020-2023  润新知