a是个矩阵或者数组,a.flatten()就是把a降到一维,默认是按横的方向降
>>> a = np.array([[1,2], [3,4]]) >>> a.flatten() array([1, 2, 3, 4]) >>> a.flatten('F') #按竖的方向降 array([1, 3, 2, 4])
那么a.flatten().A又是什么呢? 其实这是因为此时的a是个矩阵,降维后还是个矩阵,矩阵.A(等效于矩阵.getA())变成了数组。具体看下面的例子:
>>> from numpy import *
>>> 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)
>>> y = a.flatten().A[0]
>>> shape(y)
(6,)
>>> y
array([1, 3, 2, 4, 3, 5])
下面是flatten的原版解释
numpy.chararray.flatten
chararray.flatten(order='C')
Return a copy of the array collapsed into one dimension.
Parameters: | order : {‘C’, ‘F’, ‘A’, ‘K’}, optional
|
---|---|
Returns: | y : ndarray
|
See also
Return a flattened array.
A 1-D flat iterator over the array.
Examples
>>>
>>> a = np.array([[1,2], [3,4]]) >>> a.flatten() array([1, 2, 3, 4]) >>> a.flatten('F') array([1, 3, 2, 4])