[python] numpy中的flatten和ravel函數有什麼區別?


Answers

正如here所解釋的,關鍵的區別在於flatten是ndarray對象的一種方法,因此只能用於真正的numpy數組。 相比之下, ravel()是一個庫級函數,因此可以在任何可以成功解析的對像上調用。 例如,ravel ravel()將在ndarrays列表上工作,而扁平化對於該類型的對像不可用。

@IanH在他的回答中也指出了與記憶處理的重要區別。

Question
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]

這兩個函數都返回相同的列表。 那麼執行同樣工作的兩種不同功能需要什麼。




Links



Tags

python python   numpy