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实现socket客户端和服务端简单示例
Feb 24 Python
python实现数值积分的Simpson方法实例分析
Jun 05 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
解决在pycharm中显示额外的 figure 窗口问题
Jan 15 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
基于python实现把图片转换成素描
Nov 13 Python
Python实现图片识别加翻译功能
Dec 26 Python
利用PyTorch实现VGG16教程
Jun 24 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
python实现批量移动文件
Apr 05 Python
OpenCV中resize函数插值算法的实现过程(五种)
Jun 05 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笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
JSON对象转化为字符串详解
2017/08/11 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
python插入排序算法的实现代码
2013/11/21 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
python批量修改图片大小的方法
2018/07/24 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
python pip如何手动安装二进制包
2020/09/30 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
成龙霸王洗发水广告词
2014/03/14 职场文书
班级联欢会主持词
2015/07/03 职场文书
python实现双链表
2022/05/25 Python