两者的本质都是想把多维的数组降为1维。区别在于numpy.flatten()返回一份拷贝,对数据更改时不会影响原来的数组,而numpy.ravel()则返回视图,对数据更改时会影响原来的数组。
共同点:
>>> import numpy as np
>>> x = np.array([[1,3,4],[2,3,5]])
>>> x.ravel()
array([1, 3, 4, 2, 3, 5])
>>> x.flatten()
array([1, 3, 4, 2, 3, 5])
不同点:
>>> x.flatten()[1] =10
>>> x
array([[1, 3, 4],
[2, 3, 5]])
>>>
>>> x.ravel()[1] = 10
>>> x
array([[ 1, 10, 4],
[ 2, 3, 5]])