使用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中使用装饰器和元编程实现结构体类实例
Jan 28 Python
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
python中input()与raw_input()的区别分析
Feb 27 Python
python操作MySQL 模拟简单银行转账操作
Sep 27 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
Python分支语句与循环语句应用实例分析
May 07 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
python 如何利用argparse解析命令行参数
Sep 11 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里面的抽象类
2010/01/28 PHP
php数组编码转换示例详解
2014/03/11 PHP
用PHP代码给图片加水印
2015/07/01 PHP
利用php生成验证码
2017/02/23 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
脚本收藏iframe
2006/07/21 Javascript
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
python使用Geany编辑器配置方法
2020/02/21 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
设置器与访问器的定义以及各自特点
2016/01/08 面试题
区优秀教师事迹材料
2014/02/10 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
汽车服务工程专业自荐信
2014/09/02 职场文书
甜品店创业计划书
2014/09/21 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
义诊活动通知
2015/04/24 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript