两者的功能是一致的,将多维数组降为一维,但是两者的区别是否创建视图,np.flatten()返回一份新数组,对新数组的操作不会影响原始矩阵,而np.ravel()返回的是视图,修改时会影响原始矩阵
样例如下:
x = np.array([[1 , 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
x.flatten()
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
两者的功能是一致的,将多维数组降为一维,但是两者的区别是否创建视图,np.flatten()返回一份新数组,对新数组的操作不会影响原始矩阵,而np.ravel()返回的是视图,修改时会影响原始矩阵
样例如下:
x = np.array([[1 , 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
x.flatten()
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])