使用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基于socket实现网络广播的方法
Apr 29 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
人工智能最火编程语言 Python大战Java!
Nov 13 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
详解python做UI界面的方法
Feb 27 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
正则给header的冒号两边参数添加单引号(Python请求用)
Aug 09 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
python创建文本文件的简单方法
Aug 30 Python
Python模拟登录requests.Session应用详解
Nov 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
dedecms模版制作使用方法
2007/04/03 PHP
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
iOS10推送通知开发教程
2016/09/19 PHP
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Python实现查找系统盘中需要找的字符
2015/07/14 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
python 表格打印代码实例解析
2019/10/12 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
python数字类型math库原理解析
2020/03/02 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
幼儿园长自我鉴定
2013/10/17 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫
springcloud整合seata
2022/05/20 Java/Android