Python中flatten( )函数及函数用法详解


Posted in Python onNovember 02, 2018

flatten()函数用法

flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组。

flatten只能适用于numpy对象,即array或者mat,普通的list列表不适用!。

a.flatten():a是个数组,a.flatten()就是把a降到一维,默认是按行的方向降 。
a.flatten().A:a是个矩阵,降维后还是个矩阵,矩阵.A(等效于矩阵.getA())变成了数组。具体看下面的例子:

1、用于array(数组)对象

>>> from numpy import *
>>> a=array([[1,2],[3,4],[5,6]])
>>> a
array([[1, 2],
    [3, 4],
    [5, 6]])
>>> a.flatten() #默认按行的方向降维
array([1, 2, 3, 4, 5, 6])
>>> a.flatten('F') #按列降维
array([1, 3, 5, 2, 4, 6]) 
>>> a.flatten('A') #按行降维
array([1, 2, 3, 4, 5, 6])
>>>

2、用于mat(矩阵)对象

>>> a=mat([[1,2,3],[4,5,6]])
>>> a
matrix([[1, 2, 3],
    [4, 5, 6]])
>>> a.flatten()
matrix([[1, 2, 3, 4, 5, 6]])
>>> a=mat([[1,2,3],[4,5,6]])
>>> a
matrix([[1, 2, 3],
    [4, 5, 6]])
>>> a.flatten()
matrix([[1, 2, 3, 4, 5, 6]])
>>> y=a.flatten().A 
>>> shape(y)
(1L, 6L)
>>> shape(y[0]) 
(6L,)
>>> a.flatten().A[0] 
array([1, 2, 3, 4, 5, 6])
>>>

从中可以看出matrix.A的用法和矩阵发生的变化。

3、但是该方法不能用于list对象,想要list达到同样的效果可以使用列表表达式:

>>> a=array([[1,2],[3,4],[5,6]])
>>> [y for x in a for y in x]
[1, 2, 3, 4, 5, 6]
>>> 
!

下面看下Python中flatten用法

一、用在数组

>>> a = [[1,3],[2,4],[3,5]]
>>> a = array(a)
>>> a.flatten()
array([1, 3, 2, 4, 3, 5])

二、用在列表

如果直接用flatten函数会出错

>>> a = [[1,3],[2,4],[3,5]]
>>> a.flatten()

Traceback (most recent call last):
 File "<pyshell#10>", line 1, in <module>
  a.flatten()
AttributeError: 'list' object has no attribute 'flatten'

正确的用法

>>> a = [[1,3],[2,4],[3,5],["abc","def"]]
>>> a1 = [y for x in a for y in x]
>>> a1
[1, 3, 2, 4, 3, 5, 'abc', 'def']

或者(不理解)

>>> a = [[1,3],[2,4],[3,5],["abc","def"]]
>>> flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]
>>> flatten(a)
[1, 3, 2, 4, 3, 5, 'abc', 'def']

三、用在矩阵

>>> a = [[1,3],[2,4],[3,5]]
>>> a = mat(a)
>>> y = a.flatten()
>>> y
matrix([[1, 3, 2, 4, 3, 5]])
>>> y = a.flatten().A
>>> y
array([[1, 3, 2, 4, 3, 5]])
>>> shape(y)
(1, 6)
>>> shape(y[0])
(6,)
>>> y = a.flatten().A[0]
>>> y
array([1, 3, 2, 4, 3, 5])

总结

以上所述是小编给大家介绍的Python中flatten( )函数及函数用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
利用aardio给python编写图形界面
Aug 21 Python
Django中的ajax请求
Oct 19 Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 Python
基于Django统计博客文章阅读量
Oct 29 Python
python字符串下标与切片及使用方法
Feb 13 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
Apr 08 Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 Python
详解Python中的进程和线程
Jun 23 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
Nov 01 #Python
Python拼接字符串的7种方法总结
Nov 01 #Python
在python中bool函数的取值方法
Nov 01 #Python
numpy给array增加维度np.newaxis的实例
Nov 01 #Python
Python 中导入csv数据的三种方法
Nov 01 #Python
numpy向空的二维数组中添加元素的方法
Nov 01 #Python
CentOS 7 安装python3.7.1的方法及注意事项
Nov 01 #Python
You might like
PHP操作MySQL事务实例
2014/11/05 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
一个js实现的所谓的滑动门
2007/05/23 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Django实现快速分页的方法实例
2017/10/22 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
网络营销实训总结
2015/08/03 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
比较node.js和Deno
2021/04/27 Javascript
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
python中24小时制转换为12小时制的方法
2021/06/18 Python
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫