使用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基础教程之基本数据类型和变量声明介绍
Aug 29 Python
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
Python 加密的实例详解
Oct 09 Python
python实现生命游戏的示例代码(Game of Life)
Jan 24 Python
Python实现多线程的两种方式分析
Aug 29 Python
Scrapy框架使用的基本知识
Oct 21 Python
python微信公众号之关注公众号自动回复
Oct 25 Python
修改python plot折线图的坐标轴刻度方法
Dec 13 Python
django模板加载静态文件的方法步骤
Mar 01 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
Jan 15 Python
Python openpyxl 插入折线图实例
Apr 17 Python
python实现学生信息管理系统(精简版)
Nov 27 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
PHP函数超时处理方法
2016/02/14 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
javascript中this指向详解
2016/04/23 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
python中time tzset()函数实例用法
2021/02/18 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
英语专业学生个人求职信范文
2014/01/06 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
档案接收函格式
2015/01/30 职场文书
采购员岗位职责
2015/02/03 职场文书
检举信的写法
2019/04/10 职场文书