您的位置:首页 > 编程语言 > Python开发

Python中flatten用法

2017-09-03 12:53 267 查看


转载:http://blog.csdn.net/maoersong/article/details/23823925


一、用在数组

[python] view
plain copy

>>> a = [[1,3],[2,4],[3,5]]  

>>> a = array(a)  

>>> a.flatten()  

array([1, 3, 2, 4, 3, 5])  


二、用在列表

如果直接用flatten函数会出错

[python] view
plain copy

>>> 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'  

正确的用法

[python] view
plain copy

>>> 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']  

或者(不理解)

[python] view
plain copy

>>> 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']  


三、用在矩阵

[python] view
plain copy

>>> 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