python flatten

来源:互联网 发布:cnc编程员 编辑:程序博客网 时间:2024/06/05 20:56

一、用在数组

派生到我的代码片    >>> 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]) 

0 0
原创粉丝点击