分割数组

函数

数组及操作

split

将一个数组分割为多个子数组

hsplit

将一个数组水平分割为多个子数组(按列)

vsplit

将一个数组垂直分割为多个子数组(按行)

numpy.split 函数沿特定的轴将数组分割为子数组,格式如下:

numpy.split(ary, indices_or_sections, axis)

参数说明:

ary:被分割的数组

indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)

axis:设置沿着哪个方向进行切分,默认为 0,横向切分,即水平方向。为 1 时,纵向切分,即竖直方向。

实例一:split分割

import numpy as np

a = np.arange(9)
print ('第一个数组:')
print (a)
print ('\n') print ('将数组分为三个大小相等的子数组:')
b = np.split(a,3)
print (b)
print ('\n') print ('将数组在一维数组中表明的位置分割:')
b = np.split(a,[4,7])
print (b)

 输出结果为:

第一个数组:[0 1 2 3 4 5 6 7 8]

将数组分为三个大小相等的子数组:[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]

将数组在一维数组中表明的位置分割:[array([0, 1, 2, 3]), array([4, 5, 6]), array([7, 8])]

axis 为 0 时在水平方向分割,axis 为 1 时在垂直方向分割:

实例二:默认分割(水平分割)

import numpy as np

a = np.arange(16).reshape(4, 4)
print('第一个数组:')
print(a)
print('\n') print('默认分割(0轴):')
b = np.split(a,2)
print(b)
print('\n') print('沿水平方向分割:')
c = np.split(a,2,1)
print(c)
print('\n') print('沿水平方向分割:')
d= np.hsplit(a,2)
print(d)

 输出结果为:

第一个数组:[[ 0  1  2  3]

[ 4  5  6  7]

[ 8  9 10 11]

[12 13 14 15]]

默认分割(0轴):[array([[0, 1, 2, 3],

[4, 5, 6, 7]]), array([[ 8,  9, 10, 11],

[12, 13, 14, 15]])]

沿水平方向分割:[array([[ 0,  1],

[ 4,  5],

[ 8,  9],

[12, 13]]), array([[ 2,  3],

[ 6,  7],

[10, 11],

[14, 15]])]

沿水平方向分割:[array([[ 0,  1],

[ 4,  5],

[ 8,  9],

[12, 13]]), array([[ 2,  3],

[ 6,  7],

[10, 11],

[14, 15]])]

numpy.hsplit 函数用于水平分割数组,通过指定要返回的相同形状的数组数量来拆分原数组。

实例三:沿垂直轴分割

import numpy as np

harr = np.floor(10 * np.random.random((2, 6)))

print ('原array:')
print(harr) print ('拆分后:')
print(np.hsplit(harr, 3))

 输出结果为:

原array:[[4. 7. 6. 3. 2. 6.]

[6. 3. 6. 7. 9. 7.]]

拆分后:[array([[4., 7.],

[6., 3.]]), array([[6., 3.],

[6., 7.]]), array([[2., 6.],

[9., 7.]])]

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

实例四:竖直分割

import numpy as np

a = np.arange(16).reshape(4,4)

print ('第一个数组:')
print (a)
print ('\n') print ('竖直分割:')
b = np.vsplit(a,2)
print (b)

 输出结果为:

第一个数组:[[ 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]])]

Python numpy数组操作(分割数组)的更多相关文章

  1. ES6-新增的数组操作,数组解构,forEach,fillter,some.map的数组遍历,数组转换字符串

    ES6-新增的数组操作 // es6数组格式 let json = { '0' : 'anan', '1' : 'anani', '2' : 'anania', length:3 } //es6 把数 ...

  2. JavaScript jQuery 中定义数组操作及数组操作

    1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象 Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维 ...

  3. Python Numpy线性代数操作

    Python Numpy线性代数函数操作 1.使用dot计算矩阵乘法 import numpy as np from numpy import ones from __builtin__ import ...

  4. PHP数组操作——获取数组最后一个值的方法

    php开发过程中,可能经常需要对取出的数组要获取数组的最后健或值.在这里总结了三个方法,并且跟据他们三个方法在一些情况下如何使用的条件限制进行了说明. <?php $array=array(1, ...

  5. js数组操作-打乱数组

    <style> html, body { margin: 0; padding: 0;} div span { display: inline-block; width: 25px; he ...

  6. Scala编程入门---数组操作之数组转换

    使用yield和函数式编程转换数组 //对Array进行转换,获取的还是Aarry val a = Array(1,2,3,4,5) val a2 = for(ele <- a) yield e ...

  7. Scala 数组操作之数组转换

    使用yield和函数式编程转换数组 // 对Array进行转换,获取的还是Array val a = Array(1, 2, 3, 4, 5) val a2 = for (ele <- a) y ...

  8. Numpy数组操作

    """ Numpy 数组操作 修改数组形状 函数 描述 reshape 不改变数据的条件下修改形状 flat 数组元素迭代器 flatten 返回一份数组拷贝,对拷贝所做 ...

  9. python -- numpy 基本数据类型,算术运算,组合,分割 函数

    0 NumPy数组 NumPy数组:NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的元数据 NumPy数组属性: ndim(纬数,x,y 2),sha ...

  10. PHP内核探索之变量(4)- 数组操作

    上一节(PHP内核探索之变量(3)- hash table),我们已经知道,数组在PHP的底层实际上是HashTable(链接法解决冲突),本文将对最常用的函数系列-数组操作的相关函数做进一步的跟踪. ...

随机推荐

  1. echart自定义主题

    echart默认以canvas展示,放大会模糊,可以使用svg格式.

  2. paddlespeech on centos7

    概述 paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别.语音合成.说话人验证.关键词识别.音频分类和语音翻译等功能. paddles ...

  3. zookeeper源码(06)ZooKeeperServer及子类

    ZooKeeperServer 实现了单机版zookeeper服务端功能,子类实现了更加丰富的分布式集群功能: ZooKeeperServer |-- QuorumZooKeeperServer |- ...

  4. Web API接口返回实现类集合的姿势了解

    大家好,我是沙漠尽头的狼. 一. 问题描述 如下图,定义两个子类Student和Employ,都继承自抽象类PersonBase: public abstract class PersonBase { ...

  5. [转帖]SQL Server 性能调优

      性能调优2:CPU   关系型数据库严重依赖底层的硬件资源,CPU是服务器的大脑,当CPU开销很高时,内存和硬盘系统都会产生不必需要的压力.CPU的性能问题,直观来看,就是任务管理器中看到的CPU ...

  6. [转帖]Prometheus系列之Grafana 版本9.0.0 设置Email邮件报警实战

    目录 1. 配置文件conf/defaults.ini修改 2. Grafana Web页面配置报警邮箱接收者 3. 创建Dashboard 4. 创建Alert的文件夹 5. 设置Notificat ...

  7. [转帖]是的你没看错,HTTP3来了

    https://www.jianshu.com/p/288ce6a8ab88 简介 很多小伙伴可能还沉浸在HTTP1.1的世界无法自拔,但是时代的洪流已经带领我们来到了HTTP3的世界了.是的,你在桥 ...

  8. [转帖]聊聊我对 GraphQL 的一些认知

    https://www.modb.pro/db/139451 作者简介:haohongfan 是 Apache Dubbogo Committer,目前就职于京东,擅长高并发架构设计.公众号 HHFC ...

  9. 基于Prometheus和Grafana监控redis,Oracle,mysql,pg以及sqlserver的方法总结

    基于Prometheus和Grafana监控redis,Oracle,mysql,pg以及sqlserver的方法总结 简单记录一下方法 1.获取相应的exporter 1. redis docker ...

  10. ngnix在linux安装并设置反向代理

    一.nginx安装 1.安装Nginx依赖的环境 安装Nginx依赖的gcc的编译环境: yum install gcc-c++ Nginx的http模块需要使用pcre来解析正则表达式,需要安装pc ...