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])  
  • 相关阅读:
    死锁篇
    java线程池
    sql server 多行数据指定字符串拼接
    动态提交 表格
    ABP
    DDD学习
    sql 语句插入数据返回id
    Post方式提交,通过上下文HttpContext,Request[""]获取
    JQ的过滤隐藏
    sql 查询有多少行
  • 原文地址:https://www.cnblogs.com/developer-ios/p/7876080.html
Copyright © 2011-2022 走看看