numpy——hsplit函数、vsplit函数、array_split函数

hsplit函数(col方向)

使用hsplit,通过指定要返回的相同shape的array的数量,或者通过指定分割应该发生之后的列来沿着其横轴拆分原array:

  • 指定相同shape的array的数量来拆分原array:
 import numpy as np
 harr = np.floor(10 * np.random.random((2, 6)))
print(harr)
print(np.hsplit(harr, 3))
原array:
[[ 8.  5.  0.  2.  3.  8.]
 [ 0.  2.  9.  5.  8.  2.]]
拆分后:
[array([[ 8.,  5.],
        [ 0.,  2.]]), array([[ 0.,  2.],
        [ 9.,  5.]]), array([[ 3.,  8.],
        [ 8.,  2.]])]
  • 指定分割应该发生之后的列来拆分原array
 print(np.hsplit(harr, (2, 4, 5)))
 拆分结果:
 [array([[ 8.,  5.],
        [ 0.,  2.]]), array([[ 0.,  2.],
        [ 9.,  5.]]), array([[ 3.],
        [ 8.]]), array([[ 8.],
        [ 2.]])]

vsplit函数 (row方向)

vsplit沿着垂直轴分割,其分割方式与hsplit用法相同。
1、

varr = np.arange(16).reshape([4,4])
print(varr)
print(np.vsplit(varr, 2))
原array为:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
差分后:
[array([[0, 1, 2, 3],
       [4, 5, 6, 7]]), array([[ 8,  9, 10, 11],
       [12, 13, 14, 15]])]

2、

print(np.vsplit(varr, (2, 3)))
拆分结果:
[array([[0, 1, 2, 3],
       [4, 5, 6, 7]]), array([[ 8,  9, 10, 11]]), array([[12, 13, 14, 15]])]

array_split函数

hsplitvsplitarray_split之间的唯一区别是array_split允许indices_or_sections是一个不等于轴的整数。 对于应该分成n个部分的长度为l的数组,它将返回l%n个大小为l // n + 1的子数组,其余大小为l // n。

x = np.arange(8.0)
np.array_split(x, 3)
原array为:
array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.])
拆分后:
[array([ 0.,  1.,  2.]), array([ 3.,  4.,  5.]), array([ 6.,  7.])]

参考文献:
https://docs.scipy.org/doc/numpy/user/quickstart.html

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值