import numpy as np
numpy.ravel()的区别numpy.flatten()
(1)两者所要实现的功能是一致的(将多维数组降位一维);
(2)numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵;
(3)numpy.ravel()返回的是视图(view,也颇有几分C/C++引用reference的意味),会影响(reflects)原始矩阵。
1、测试flatten和ravel的值
a1=np.array([[1,2,3],[4,5,6]])
b1=np.array([[1,2,3],[4,5,6]])
print(“a1:”,a1)
a1: [[1 2 3]
[4 5 6]]
print(“a1.flatten():”,a1.flatten())#a1.flatten(): [1 2 3 4 5 6]
print(“b1.ravel():”,b1.ravel())#b1.ravel(): [1 2 3 4 5 6]
2、两个的区别
a1.flatten()[1]=200;#原始矩阵不会改变
print(“a1.flatten():”,a1.flatten())#a1.flatten(): [1 2 3 4 5 6]
b1.ravel()[1]=200;#原始矩阵会改变
print(“b1.ravel():”,b1.ravel())#b1.ravel(): [ 1 200 3 4 5 6]