使用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基础教程之类class定义使用方法
Feb 20 Python
Python fileinput模块使用介绍
Nov 30 Python
用Python生成器实现微线程编程的教程
Apr 13 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
Jun 30 Python
node.js获取参数的常用方法(总结)
May 29 Python
vscode 远程调试python的方法
Dec 01 Python
使用Python的Django和layim实现即时通讯的方法
May 25 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
python输出决策树图形的例子
Aug 09 Python
Python tkinter模版代码实例
Feb 05 Python
python thrift 实现 单端口多服务的过程
Jun 08 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 explode()函数用法、切分字符串
2012/10/03 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
Javascript 函数中的参数使用分析
2010/03/27 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
python属于软件吗
2020/06/18 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
2014年毕业演讲稿范文
2014/05/13 职场文书
经济国贸专业求职信
2014/06/18 职场文书
实习护士自荐信
2014/06/21 职场文书
法学求职信
2014/06/22 职场文书
倡议书的格式写法
2015/04/28 职场文书
Golang中channel的原理解读(推荐)
2021/10/16 Golang
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android