首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Numpy 模块基础学习(5)

Numpy 模块基础学习(5)

5. 数组的合并

简单的数组合并使用vstack()和hstack()即可,而对于复杂的合并使用concatenate()则更简单。

    >>>import numpy as np
    >>>a=np.array([1,1,1])
    >>>b=np.array([2,2,2])
    >>>np.vstack((a,b))    # vstack()进行纵向合并,也即堆叠
    array([[1, 1, 1],
           [2, 2, 2]])
    >>>np.hstack(a,b)  # hstack()进行横向合并
    array([1, 1, 1, 2, 2, 2])

对于一维数组,无法进行转置,需要先进行一些改变

    >>>import numpy as np
    >>>a=np.array([1,1,1])[np.newaxis,:]     # 1行3列
    >>>a.shape
    (1,3)
    >>>b=np.array([2,2,2])[:,np.newaxis]   # 3行1列
    >>>b.shape
    (3,1)
    >>>np.vstack((b,b))
    array([[2],
           [2],
           [2],
           [2],
           [2],
           [2]])

要合并多个矩阵或者序列时,则用concatenate会更方便

    >>>import numpy as np
    >>>a=np.array([1,1,1])[:,np.newaxis]
    >>>b=np.array([2,2,2])[:,np.newaxis]
    >>>np.concatenate((a,b,b,a),axis=0)   # axis=0 表示按行堆叠纵向合并
    array([[1],
           [1],
           [1],
           [2],
           [2],
           [2],
           [2],
           [2],
           [2],
           [1],
           [1],
           [1]])
    >>>np.concatenate((a,b,b,a),axis=1)  # axis=1表示横向以增加列的方式合并
     array([[1, 2, 2, 1],
           [1, 2, 2, 1],
           [1, 2, 2, 1]])
---------------------
返回列表