使用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实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
Python对列表中的各项进行关联详解
Aug 15 Python
浅谈使用Python变量时要避免的3个错误
Oct 30 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
python提取包含关键字的整行数据方法
Dec 11 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
Python笔试面试题小结
Sep 07 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Java Unsafe类实现原理及测试代码
Sep 15 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 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
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php 团购折扣计算公式
2011/11/24 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
JS typeof fn === 'function' && fn()详解
2020/08/22 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
python中关于日期时间处理的问答集锦
2013/03/08 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python制作刷网页流量工具
2017/04/23 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
小学生防溺水广播稿
2014/01/12 职场文书
校长创先争优承诺书
2014/08/30 职场文书
总结会主持词
2015/07/02 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
React四级菜单的实现
2022/04/08 Javascript