Board logo

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

作者: look_w    时间: 2019-2-19 16:26     标题: Numpy 模块基础学习(6)

6. 分割

数组中常用split()以及array_split()进行等量以及不等量分割,分割后的部分可以采用索引的方式取出想要的部分。

    >>>import numpy as np
    >>>a=np.arange(12).reshape((3,4))
    >>>a
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
    >>>
    # 利用np.split()进行等量分割
    >>>np.split(a,3,axis=0)  # 将a分成几行
    [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
    >>>np.split(a,2,axis=1)  #将a按列分成2半,每部分2列
    [array([[0, 1],
            [4, 5],
            [8, 9]]), array([[ 2,  3],
            [ 6,  7],
            [10, 11]])]
    >>>
    # 利用np.array_split()进行不等量分割
    >>>np.array_split(a,3,axis=1)  # 将a按列分成2,1,1三列
    [array([[0, 1],
            [4, 5],
            [8, 9]]), array([[ 2],
            [ 6],
            [10]]), array([[ 3],
            [ 7],
            [11]])]
    >>>np.array_split(a,2,axis=0)   # 将a按行分成2,1两部分
    [array([[0, 1, 2, 3],
            [4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]

其他的分割方式:np.vsplit()和np.hsplit()。np.vsplit()即纵向按行分割,np.hsplit()即横向按列分割。但是这两种分割方式都不支持不等量分割。

    >>>import numpy as np
    >>>a=np.arange(12).reshape((3,4))
    >>>np.hsplit(a,2)    # 相当于np.split(a,2,axis=1),按列分割
    [array([[0, 1],
            [4, 5],
            [8, 9]]), array([[ 2,  3],
            [ 6,  7],
            [10, 11]])]
    >>> np.vsplit(a,3)  # 相当于np.split(a,3,axis=0),按行分成三行
    [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]




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