使用python实现多维数据降维操作


Posted in Python onFebruary 24, 2020

一,首先介绍下多维列表的降维

def flatten(a):
 for each in a:
  if not isinstance(each,list):
   yield each
  else:
   yield from flatten(each)
if __name__ == "__main__":
 a = [[1,2],[3,[4,5]],6]
 print(list(flatten(a)))

二、这种降维方法同样适用于多维迭代器的降维

from collections import Iterable
 
def flattern(a):
 for i in a:
  if not isinstance(i,Iterable) or isinstance(i,str):
   yield i
  else:
   yield from flattern(i)
if __name__ == "__main__":
 a = [[1,2],(3,4,tuple(5,)),["6,7,8"],[9,range(10,20,1)]]
 print(list(flattern(a)))

iterable:可迭代的,迭代器,在Python中iterable被认为是一个对象,这个对象可以一次返回它的一个成员(也就是对象里面的元素),Python中的string,list,tuple,dict,file,xrange都是可迭代的,都属于iterable对象,可迭代的对象都是可以遍历的,实际上Python中有很多iterable类型是使用iter()函数来生成的。

补充:将一个多维数组彻底的降维

废话不多说,直接上代码

const flattenDeep = arr =>
 Array.isArray(arr)
 ? arr.reduce((a, b) => [...a, ...flattenDeep(b)], [])
 : [arr];

以上这篇使用python实现多维数据降维操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 正则表达式 概述及常用字符
May 04 Python
下载给定网页上图片的方法
Feb 18 Python
深入分析在Python模块顶层运行的代码引起的一个Bug
Jul 04 Python
Python异常学习笔记
Feb 03 Python
Python实现竖排打印传单手机号码易撕条
Mar 16 Python
python3制作捧腹网段子页爬虫
Feb 12 Python
Python实现采用进度条实时显示处理进度的方法
Dec 19 Python
Python求出0~100以内的所有素数
Jan 23 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
LeetCode189轮转数组python示例
Aug 05 Python
python数据预处理 :数据抽样解析
Feb 24 #Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 #Python
Python流程控制常用工具详解
Feb 24 #Python
深入浅析Python 函数注解与匿名函数
Feb 24 #Python
python数据预处理方式 :数据降维
Feb 24 #Python
python实现PCA降维的示例详解
Feb 24 #Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 #Python
You might like
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
laravel自定义分页效果
2017/07/23 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
微信小程序实现选项卡功能
2020/06/19 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
英语生日邀请函
2014/01/23 职场文书
企业党员个人自我评价
2014/09/20 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
2015年助残日活动总结
2015/03/27 职场文书
解除处分决定书
2015/06/25 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技