使用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 相关文章推荐
python3使用urllib示例取googletranslate(谷歌翻译)
Jan 23 Python
Python字符串匹配算法KMP实例
Jul 18 Python
python 函数内部修改外部变量的方法
Dec 18 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
Python魔法方法 容器部方法详解
Jan 02 Python
python识别验证码图片实例详解
Feb 17 Python
Python调用ffmpeg开源视频处理库,批量处理视频
Nov 16 Python
Django后端按照日期查询的方法教程
Feb 28 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实现CSV文件导入和导出
2015/10/24 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
一分钟理解js闭包
2016/05/04 Javascript
微信小程序入门教程
2016/11/18 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
Vue实现简易计算器
2020/02/25 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
Python实现常见的回文字符串算法
2018/11/14 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
HTML5之语义标签介绍
2016/07/07 HTML / CSS
2014三八妇女节活动总结
2014/03/01 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
刊首寄语大全
2014/04/11 职场文书
民族精神月活动总结
2014/08/28 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android