import numpy as np
y = np.array(((1,2,3),(4,5,6),(7,8,9)))
OUTPUT:
print(y.flatten())
[1 2 3 4 5 6 7 8 9]
print(y.ravel())
[1 2 3 4 5 6 7 8 9]
这两个函数返回相同的列表。那么需要两个不同的功能来执行相同的工作。
当前的API是:
flatten
总是返回一个副本。ravel
尽可能返回原始数组的视图。这在打印输出中不可见,但是如果您修改ravel返回的数组,则可能会修改原始数组中的条目。如果修改从flatten返回的数组中的条目,则将永远不会发生。ravel通常会更快,因为没有内存被复制,但是您在修改它返回的数组时要格外小心。reshape((-1,))
只要数组的步幅允许它就可以获取视图,即使这意味着您并不总是可以获得连续的数组。