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 相关文章推荐
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
简单讲解Python中的数字类型及基本的数学计算
Mar 11 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
python使用插值法画出平滑曲线
Dec 15 Python
Python3.5内置模块之time与datetime模块用法实例分析
Apr 27 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
Python3 如何开启自带http服务
May 18 Python
PYTHON InceptionV3模型的复现详解
May 06 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
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
JavaScript 语言的递归编程
2010/05/18 Javascript
基于jquery的图片懒加载js
2010/06/30 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
python求crc32值的方法
2014/10/05 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
python logging模块的使用总结
2019/07/09 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
社会实践自我鉴定
2013/11/07 职场文书
数学专业推荐信范文
2013/11/21 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
2014年领班工作总结
2014/11/25 职场文书
销售人员管理制度
2015/08/06 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
详解php中流行的rpc框架
2021/05/29 PHP