博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
numpy array分割-【老鱼学numpy】
阅读量:4929 次
发布时间:2019-06-11

本文共 2134 字,大约阅读时间需要 7 分钟。

有合并,就有分割。

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

横向/纵向分割数组

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

import numpy as npa = 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 npa = 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 npa = 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 npa = 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 npa = 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

你可能感兴趣的文章
Jquery消息提示插件toastr使用详解
查看>>
java读取远程url图片,得到宽高
查看>>
合并两个DataSet的数据内容
查看>>
网络模型 - 每天5分钟玩转 Docker 容器技术(169)
查看>>
关于近乎安装卡在了链接数据库的向导页面问题的解决办法分享
查看>>
抽象类简单举例
查看>>
Ingress Protection
查看>>
SGI STL空间配置器和内存池
查看>>
基于jPlayer的三分屏制作
查看>>
【转】Java并发编程:volatile关键字解析
查看>>
栈和队列8 - 数据结构和算法30
查看>>
PEInfo编程思路讲解03 - 工具篇03|解密系列
查看>>
2014.6.23
查看>>
发送 一个无序广播
查看>>
一块GPU就能训练语义分割网络,百度PaddlePaddle是如何优化的?
查看>>
struts2 重定向
查看>>
[大数加法]Add Binary
查看>>
Responsive设计的十个基本技巧(转)
查看>>
使用MVC的Ajax.BeginForm方法实现异步验证
查看>>
行为型模式之模板模式
查看>>