Python中flatten用法

Python中flatten用法

一、用在数组

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

二、用在列表

如果直接用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 1in <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. [132435'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. [132435'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([[132435]])  
  6. >>> y = a.flatten().A  
  7. >>> y  
  8. array([[132435]])  
  9. >>> shape(y)  
  10. (16)  
  11. >>> shape(y[0])  
  12. (6,)  
  13. >>> y = a.flatten().A[0]  
  14. >>> y  
  15. array([132435])  

猜你喜欢

转载自blog.csdn.net/Julialove102123/article/details/80069632