分割数组

函数

数组及操作

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. 扒一扒ProcessOn 新功能——一键编号、图形组合、左侧导航、画布水印、表格组件

    思维导图.一键编号 思维导图新增 多种全新主题风格,让您的创作赏心悦目 思维导图新增 一键编号 功能 流程图.图形组合 自定义组合图形功能:新增流程图 我的图形 功能,用户可以设置或者上传自己的图形 ...

  2. 根据返回的多层Json来进行创建文件,达到根据阶层创建,然后压缩成压缩包进行下载

    临时接到一个需求说让根据按照下面的这个图片的结构来打包下载指定位置下的文件到指定位置! 实现思路: 1.把已经实现的树形结构的代码进行调用,拿到他的数据进行创建对应的文件夹 2.因为结构下方的文件没有 ...

  3. 问题--C++单例模式中唯一对象初始化时关于在类外调用私有的无参构造问题

    1.问题 在单例模式中初始化单例对象Person* Person::signal= new Person; 这一步在类外,而new Person需要调用私有的无参构造,但是只有在类内部才能调用私有函数 ...

  4. Go-获取文件MD5值

    获取文件的MD5值 crypto/md5 encoding/hex package filetools import ( "crypto/md5" "encoding/h ...

  5. Mygin实现简单的路由

    本文是Mygin第二篇 目的: 实现路由映射 提供了用户注册静态路由方法(GET.POST方法) 基于上一篇 Mygin 实现简单Http 且参照Gin 我使用了map数组实现简单路由的映射关系 不同 ...

  6. [转帖]linux删除文本文件空白行

    linux删除文本文件空白行https://www.zhihu.com/people/chen-kai-84-54-75 sed命令 在Linux中,可以使用sed命令批量删除文本中的空白行.以下是一 ...

  7. [转帖]INTEL MLC(Memory Latency Checker)介绍

    https://zhuanlan.zhihu.com/p/359823092 在定位机器性能问题的时候,有时会觉得机器莫名其妙地跑的慢,怎么也看不出来问题.CPU频率也正常,程序热点也没问题,可就是慢 ...

  8. Oracle表数量对数据泵备份恢复速度的影响情况

    Oracle表数量对数据泵备份恢复速度的影响情况 背景 随着公司产品交付后的时间越来越久. 数据库的备份恢复速度会越来越慢. 最开始一直认为是因为数据量导致的. 但是最近发现, 如果只是将数据库表的量 ...

  9. 慢SQL的致胜法宝

    大促备战,最大的隐患项之一就是慢SQL,对于服务平稳运行带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什么思路去解决是我们必须 ...

  10. element-ui表格展开行每次只能展开一行

    element-ui表格展开行每次只能展开一行 <template> <el-table :data="tableData" :expand-row-keys=& ...