zoukankan      html  css  js  c++  java
  • Python中flatten用法

    Python中flatten用法

    原创 2014年04月16日 10:20:02

    一、用在数组

    [python] view plain copy
     
    1. >>> a = [[1,3],[2,4],[3,5]]  
    2. >>> a = array(a)  
    3. >>> a.flatten()  
    4. array([1, 3, 2, 4, 3, 5])  

    二、用在列表

    如果直接用flatten函数会出错

    [python] view plain copy
     
    1. >>> a = [[1,3],[2,4],[3,5]]  
    2. >>> a.flatten()  
    3.   
    4. Traceback (most recent call last):  
    5.   File "<pyshell#10>", line 1, in <module>  
    6.     a.flatten()  
    7. AttributeError: 'list' object has no attribute 'flatten'  

    正确的用法
    [python] view plain copy
     
    1. >>> a = [[1,3],[2,4],[3,5],["abc","def"]]  
    2. >>> a1 = [y for x in a for y in x]  
    3. >>> a1  
    4. [1, 3, 2, 4, 3, 5, 'abc', 'def']  

    或者(不理解)
    [python] view plain copy
     
    1. >>> a = [[1,3],[2,4],[3,5],["abc","def"]]  
    2. >>> flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]  
    3. >>> flatten(a)  
    4. [1, 3, 2, 4, 3, 5, 'abc', 'def']  

    三、用在矩阵

    [python] view plain copy
     
    1. >>> a = [[1,3],[2,4],[3,5]]  
    2. >>> a = mat(a)  
    3. >>> y = a.flatten()  
    4. >>> y  
    5. matrix([[1, 3, 2, 4, 3, 5]])  
    6. >>> y = a.flatten().A  
    7. >>> y  
    8. array([[1, 3, 2, 4, 3, 5]])  
    9. >>> shape(y)  
    10. (1, 6)  
    11. >>> shape(y[0])  
    12. (6,)  
    13. >>> y = a.flatten().A[0]  
    14. >>> y  
    15. array([1, 3, 2, 4, 3, 5])  
  • 相关阅读:
    Something about the "BSTR" and "SysStringLen"
    关于 i = i ++ 的问题
    duilib写个三国杀?
    关于WM_GETTEXT的应用
    hoops暂时用过的一些方法
    Hoops随便记的
    C++ win32线程数上限
    windows系统时间(SYSTEMTIME)
    Form表单提交的那些事
    多行文字溢出...
  • 原文地址:https://www.cnblogs.com/developer-ios/p/7876080.html
Copyright © 2011-2022 走看看