Numpy 中数组的分割

来自 《Python数据分析基础教程:Numpy 学习指南(第2版)》

    下面要介绍的数组分割方法有:

  • 水平分割
  • 垂直分割
  • 深度分割

    0. 创建一个数组

a = arange(9).reshape(3,3)
print(a)

    1. 水平分割

    下面的代码将把数组沿着水平方向分割为3个相同大小的子数组:

b = hsplit(a,3)
print(b)

    或者调用split函数并在参数中指定参数axis=1

b = split(a, 3, axis=1)
print(b)    

    得到结果

[array([[0],
       [3],
       [6]]),
 array([[1],
       [4],
       [7]]), 
 array([[2],
       [5],
       [8]])]

    2.垂直分割

    下面的代码将把数组沿着垂直方向分割为3个相同大小的子数组:

b = vsplit(a,3)
print(b)

    或者调用split函数并在参数中指定参数axis=1

b = split(a, 3, axis=0)
print(b)   

    得到结果

[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

    3.深度分割

    先创建一个三维数组:

a = arange(27).reshape(3,3,3)
print(a)
[[[ 0  1  2]
  [ 3  4  5]
  [ 6  7  8]]

 [[ 9 10 11]
  [12 13 14]
  [15 16 17]]

 [[18 19 20]
  [21 22 23]
  [24 25 26]]]

    调用dsplit函数按深度方向分割数组

b = dsplit(a,3)
print(b)

    得到结果

[array([[[ 0],
        [ 3],
        [ 6]],

       [[ 9],
        [12],
        [15]],

       [[18],
        [21],
        [24]]]),
 array([[[ 1],
        [ 4],
        [ 7]],

       [[10],
        [13],
        [16]],

       [[19],
        [22],
        [25]]]),
 array([[[ 2],
        [ 5],
        [ 8]],

       [[11],
        [14],
        [17]],

       [[20],
        [23],
        [26]]])]



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值