Board logo

标题: Numpy 模块基础学习(5) [打印本页]

作者: look_w    时间: 2019-2-19 16:25     标题: 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]])
---------------------




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0