Python/numpy之ravel() 与flatten()
ravel() ,flatten()
功能相同,都是将数据从多维变为一维,区别在于一个是复制操作,一个是引用操作,类似于= ,copy()
,检验的方法就是看修改数据原数据是否改变
>>> import numpy as np
>>> a = np.array([[1,2,3],[4,5,6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> b = a.ravel()
>>> c = a.flatten()
>>> c[0] = 11
>>> c
array([11, 2, 3, 4, 5, 6])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> b[0] = 12
>>> b
array([12, 2, 3, 4, 5, 6])
>>> a
array([[12, 2, 3],
[ 4, 5, 6]])
可以看到,flatten
方法展平数据后,修改后面的数据不会影响前面的数据,ravel
方法展平数据后,修改后面的数据会影响前面的数据。