numpy下的flatten()函數用法


flatten是numpy.ndarray.flatten的一個函數,其官方文檔是這樣描述的:

ndarray. flatten ( order='C' )

Return a copy of the array collapsed into one dimension.

Parameters:

 

order : {‘C’, ‘F’, ‘A’, ‘K’}, optional

‘C’ means to flatten in row-major (C-style) order. ‘F’ means to flatten in column-major (Fortran- style) order. ‘A’ means to flatten in column-major order if a is Fortran contiguous in memory, row-major order otherwise. ‘K’ means to flatten a in the order the elements occur in memory. The default is ‘C’.

Returns:

y : ndarray

A copy of the input array, flattened to one dimension.

  

即返回一個折疊成一維的數組。但是該函數只能適用於numpy對象,即array或者mat,普通的list列表是不行的。

例子:

1、用於array對象

from numpy import *

>>>a=array([[1,2],[3,4],[5,6]])  ###此時a是一個array對象
>>>a
array([[1,2],[3,4],[5,6]])

>>>a.flatten()
array([1,2,3,4,5,6])

 2、用於mat對象

>>> a=mat([[1,2,3],[4,5,6]])
>>> a
matrix([[1, 2, 3],
        [4, 5, 6]])
>>> a.flatten()
matrix([[1, 2, 3, 4, 5, 6]])

 3、但是該方法不能用於list對象

>>> a=[[1,2,3],[4,5,6],['a','b']]
>>> a
[[1, 2, 3], [4, 5, 6], ['a', 'b']]
>>> a.flatten()                      ###報錯
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'flatten'

 想要list達到同樣的效果可以使用列表表達式:

>>> [y for x in a for y in x]
[1, 2, 3, 4, 5, 6, 'a', 'b']

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM