两者功能
In [1]: x=np.array([[1,2],[3,4]])
# flattenh函数和ravel函数在降维时默认是行序优先
In [2]: x.flatten()
Out[1]: array([1, 2, 3, 4])
In [3]: x.ravel()
Out[2]: array([1, 2, 3, 4])
# 传入'F'参数表示列序优先
In [4]: x.flatten('F')
Out[3]: array([1, 3, 2, 4])
In [5]: x.ravel('F')
Out[4]: array([1, 3, 2, 4])
#reshape函数当参数只有一个-1时表示将数组降为一维
In [6]: x.reshape(-1)
Out[5]: array([1, 2, 3, 4])
#x.T表示x的转置
In [7]: x.T.reshape(-1)
Out[6]: array([1, 3, 2, 4])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
两者区别
>>> x = np.array([[1, 2], [3, 4]])
>>> x.flatten()[1] = 100
>>> x
array([[1, 2],
[3, 4]])
>>> x.ravel()[1] = 100
>>> x
array([[ 1, 100],
[ 3, 4]])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
通过上面的程序可以发现flatten函数返回的是拷贝。