numpy array分割-【老鱼学numpy】

有合并,就有分割。
本节主要讲述如何通过numpy对数组进行横向/纵向分割。

横向/纵向分割数组

首先创建一个6行4列的数组,然后我们对此数组按照横向进行切割,分成3块,这样每块应该有2行,见例子:

import numpy as np
a = np.arange(24).reshape(6, 4)
print("a=")
print(a)

print(np.split(a, 3, axis=0))

输出为:

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]]
[array([[0, 1, 2, 3],
       [4, 5, 6, 7]]), 

array([[ 8,  9, 10, 11],
       [12, 13, 14, 15]]), 

array([[16, 17, 18, 19],
       [20, 21, 22, 23]])]

上面的分割中把数组分成了等分的3份,如果我们不想分割成等分的,可以写成如下的方式:

import numpy as np
a = np.arange(24).reshape(6, 4)
print("a=")
print(a)

print(np.split(a, [3, 5], axis=0))

输出为:

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]]
[array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]]), 
array([[12, 13, 14, 15],
       [16, 17, 18, 19]]), 
array([[20, 21, 22, 23]])]

这里[3, 5]进行分割的意思是在第3行和第5行出进行切割。

同理,我们如果把axis设置为1,则可以按照列进行分割,例如,我们把上面的6行4列的数据分割成2列:

import numpy as np
a = np.arange(24).reshape(6, 4)
print("a=")
print(a)

print(np.split(a, 2, axis=1))

输出:

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]]
[array([[ 0,  1],
       [ 4,  5],
       [ 8,  9],
       [12, 13],
       [16, 17],
       [20, 21]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11],
       [14, 15],
       [18, 19],
       [22, 23]])]

水平分割hsplit

我们也可以用单独的水平或垂直分割函数对数组进行分割。
例如把数组水平分割成两列:

import numpy as np
a = np.arange(24).reshape(6, 4)
print("a=")
print(a)

print(np.hsplit(a, 2))

输出:

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]]
[array([[ 0,  1],
       [ 4,  5],
       [ 8,  9],
       [12, 13],
       [16, 17],
       [20, 21]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11],
       [14, 15],
       [18, 19],
       [22, 23]])]

垂直分割vsplit

例如:

import numpy as np
a = np.arange(24).reshape(6, 4)
print("a=")
print(a)

print(np.vsplit(a, 2))

输出为:

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]]
[array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]]), 
array([[12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])]

转载于:https://www.cnblogs.com/dreampursuer/p/7832900.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值