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

Numpy 模块基础学习(6)

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]])]
返回列表