相同点:都是想把多维的数组降为1维。
不同点:numpy.flatten() 返回一份拷贝,对数据更改时不会影响原来的数组,而numpy.ravel() 对数据更改时会影响原来的数组。
代码:
import numpy as np
x = np.array([[1, 3, 4], [2, 3, 5]])
print("x.ravel的输出:", x.ravel())
print("x.flatten的输出:", x.flatten())
x.flatten()[1] =10
print("发生改变时x.ravel的输出:", x)
x.ravel()[1] = 10
print("发生改变时x.flatten的输出:", x)
输出为:
x.ravel的输出 [1 3 4 2 3 5]
x.flatten的输出 [1 3 4 2 3 5]
发生改变时x.ravel的输出 [[1 3 4]
[2 3 5]]
发生改变时x.flatten的输出 [[ 1 10 4]
[ 2 3 5]]