欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Numpy 中数组的分割问题解析

程序员文章站 2022-07-08 07:57:23
Numpy 中数组的分割问题解析。 下面要介绍的数组分割方法有: 水平分割垂直分割深度分割 ? ? 0. 创建一个数组 a = arange(9).reshape(3,3...

Numpy 中数组的分割问题解析。 下面要介绍的数组分割方法有:

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

? ? 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]]])]