Python中flatten用法

发布时间:2019-08-28 09:25:48编辑:auto阅读(2900)



    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用法,有需要的朋友可以参考下。

关键字