我有以下一维数组:

[0, 0, 0, 1, 0, 0, 16, 249, 142, 149, 189, 135, 141, 146, 294, 3, 2, 0, 3, 3, 6, 2, 3, 4, 21, 22, 138, 95, 86, 110, 72, 89, 79, 138, 14, 18, 18, 18, 12, 15, 21, 22, 11, 20, 26, 90, 62, 128, 94, 117, 81, 81, 137, 7, 13, 14, 6, 10, 8, 11, 10, 13, 21, 18, 140, 69, 147, 110, 112, 88, 100, 197, 9, 20, 5, 6, 5, 4, 7, 10, 21, 32, 42, 56, 41, 156, 95, 112, 81, 93, 152, 14, 19, 9, 12, 20, 18, 14, 21, 18, 18, 14, 91, 47, 43, 63, 41, 45, 43, 85, 15, 16, 14, 10, 11]

我可以看到尖峰所在的模式。所以我想上面的数组分组如下:

[[0, 0, 0, 1, 0, 0, 16], [249, 142, 149, 189, 135, 141, 146, 294], [3, 2, 0, 3, 3, 6, 2, 3, 4, 21, 22], [138, 95, 86, 110, 72, 89, 79, 138]....so on]

我尝试使用K均值,均值和标准偏差的某种组合。但是,没有一个导致这种分组。请帮忙!

编辑:这些数据是沿x轴的灰度图像的暗像素值的总和,在y轴上相加。较高的范围组代表写行,而较低的范围组代表空白行。这意味着,我想将图像上的书面行和空白行分开。因此有一种模式。写入的线将具有相同的宽度,即它们的组长度将相同。由于背景噪声,空白行可能会突然出现尖峰。但总体而言,我可以手动看到空白行的模式。我需要以编程方式。

解决方案

在这种情况下,将使用基于阈值的简单方法。

x = np.array([0, 0, 0, 1, 0, 0, 16, 249, 142, 149, 189, 135, 141, 146, 294, 3, 2,

0, 3, 3, 6, 2, 3, 4, 21, 22, 138, 95, 86, 110, 72, 89, 79, 138, 14,

18, 18, 18, 12, 15, 21, 22, 11, 20, 26, 90, 62, 128, 94, 117, 81,

81, 137, 7, 13, 14, 6, 10, 8, 11, 10, 13, 21, 18, 140, 69, 147,

110, 112, 88, 100, 197, 9, 20, 5, 6, 5, 4, 7, 10, 21, 32, 42, 56,

41, 156, 95, 112, 81, 93, 152, 14, 19, 9, 12, 20, 18, 14, 21, 18,

18, 14, 91, 47, 43, 63, 41, 45, 43, 85, 15, 16, 14, 10, 11])

mask = x > 30 # Mark values above/below threshold

cuts = np.flatnonzero(np.diff(mask)) # find indices where mask changes

cuts = np.hstack([0, cuts + 1, -1]) # let indices point after the change and add beginning and end of the array.

groups = []

for a, b in zip(cuts[:-1], cuts[1:]): # iterate over index pairs

groups.append(x[a:b].tolist())

print(groups)

# [[0, 0, 0, 1, 0, 0, 16], [249, 142, 149, 189, 135, 141, 146, 294], [3, 2, 0, 3, 3, 6, 2, 3, 4, 21, 22], [138, 95, 86, 110, 72, 89, 79, 138], [14, 18, 18, 18, 12, 15, 21, 22, 11, 20, 26], [90, 62, 128, 94, 117, 81, 81, 137], [7, 13, 14, 6, 10, 8, 11, 10, 13, 21, 18], [140, 69, 147, 110, 112, 88, 100, 197], [9, 20, 5, 6, 5, 4, 7, 10, 21], [32, 42, 56, 41, 156, 95, 112, 81, 93, 152], [14, 19, 9, 12, 20, 18, 14, 21, 18, 18, 14], [91, 47, 43, 63, 41, 45, 43, 85], [15, 16, 14, 10]]

更复杂的方法可能涉及拟合分段常数模型或检测统计不平稳性,但是通常最好坚持使用最简单可行的方法。

python 一维数组所有元素是否大于_如何最好在python中将一维数组连续元素分组...相关推荐

  1. 一维数组所有元素是否大于_【C语言】- 指向一维数组元素的指针!你今天学习了吗?...

    前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量.数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素. 一.用指针指向一 ...

  2. python使用复合语句def创建函数对象_【收藏】Python实用技巧-成为Pythoner必经之路...

    前言 本文主要记录 Python 中一些常用技巧,所描述的是告诉你怎么写才是更好?  如果你并不熟悉Python语法,希望你能在下面代码片段中看到Python的简单.优雅; 如果你象我这样,对 Pyt ...

  3. c语言 数组指针传递给函数_嵌入式开发-C语言-指针与数组

    1.指针与数组-掌握 在C语言中数组的指针:是指数组在内存中的起始地址,数组元素的地址:是指数组元素在内存中的起始地址一维数组的数组名为一维数组的指针(起始地址)例:double x[8];因些,x为 ...

  4. 数组字段查询不包含_不可不知的可变Java长数组

    前言 有时我们希望将把数据保存在单个连续的数组中,以便快速.便捷地访问数据,但这需要调整数组大小或者对其扩展.Java 数组不能调整大小,只用数组不足以达成目标.可变长原始类型数组需要自己实现.本文将 ...

  5. python国内谁的书最好看_强烈建议|转行Python最好看一下这篇文章

    Python现在非常火,语法简单而且功能强大,很多同学都想学Python!最近陆陆续续有很多小伙伴问我,学Python到底应该做什么,从事哪种岗位.下面是我们工作圈里面一些同学的苦恼: 一转行要趁早 ...

  6. python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...

    前面分享了使用xlsxwriter创建excel和写入数据GUC:(原创)xlsxwriter,python excel 写入数据\图表等操作_创建.写入(一)​zhuanlan.zhihu.com ...

  7. python在教育领域的应用课题_研究型案例在Python教学方法中应用

    高勇钢 摘要:在高校开设python课程时,为了适应大数据时代对数据分析的要求,采用研究型案例教学方法增强学生计算思维能力和解决复杂专业问题的能力,并且初步掌握了研究具体问题的基本方法. 关键词:Py ...

  8. 老男孩python全栈9期全套视频_[全套视频] 老男孩Python全栈7期:Flask全套组件及原理剖析视频教程,全套视频教程学习资料通过百度云网盘下载...

    目录├─1398 T* * I K, E% T│ ├─01 python fullstack s7day139 课前分享之找一个对标的人.mp4│ ├─02 python fullstack s7da ...

  9. 黑马传智python基础班课程_fb238 17年_传智黑马Python

    fb238 17年_传智黑马Python 文件大小:7.39GB  文件类型:MP4 文件数量:50 --/资源热下载站/Vip教程/编程开发/Python/Fb238 17年_传智黑马Python/ ...

最新文章

  1. SDCC 2016 中国软件开发者大会盛大开幕
  2. css3动画-animation
  3. Java源码分析:深入探讨Iterator模式
  4. 返回的到的数据做整合_Excel玩转数据分析常用的43个函数!(建议收藏)
  5. java国际化bundle_Java国际化(i18n)ResourceBundle类
  6. (需求实战_进阶_06)SSM集成RabbitMQ 订阅模式 关键代码讲解、开发、测试
  7. 【深入浅出etcd系列】2. 心跳和选举
  8. 面试官:如何评估一个线程池需要设置多少个线程
  9. diffpatch升级_Tinker资源补丁原理解析
  10. 【C#实现猜数字游戏】
  11. Q4实现盈利,搜狐迎来“疫”外春天?
  12. 寒假2019培训:跳楼机(洛谷P3403)
  13. RocketMQTemplate发送带tags的消息
  14. java qq协议 php_Java基于JavaMail实现向QQ邮箱发送邮件
  15. 针对唯一化实例对话框程序,及其命令行操作方法
  16. 20190901笔记默写[mò xiě] write from memory
  17. java画好看坦克_java绘图,画坦克
  18. ff14服务器延迟滑步,ff14 5.0黑魔怎么玩_最终幻想14 5.0黑魔输出手法
  19. model vs shema vs instance vs store engine
  20. 华三设备常用调试命令

热门文章

  1. capture 原理图添加pcb封装_Altium Designer18制作两层PCB入门
  2. systemctl 命令完全指南
  3. C语言中结构体的初始化
  4. MySQL三大范式详解(小白也能懂哦)
  5. 3.1.6 OS之分页存储(页号、页偏移量等)
  6. 该工程中的宏被禁止_建筑工程的发包与承包中有哪些行为是禁止的?
  7. 题库练习5(句子逆序、字符串排序、int型二进制表示中1的个数、购物单)
  8. 计算机网络访问控制列表,南昌大学计算机网络实验-访问控制列表ACL
  9. vivo计算机隐藏游戏,vivo
  10. get request uni 参数_uni-app 环境配置,uni.request封装,接口配置,全局配置,接口调用的封装...