numpy中flatten和ravel之间有什么区别?

时间:2015-03-03 16:48:12

标签: numpy

Numpy v 1.9包含两个看似相同的功能: 'flatten''ravel'

有什么区别?我何时可以选择一个与另一个相比将2-D np.array转换为1-D?

1 个答案:

答案 0 :(得分:27)

<强>阿哈: 主要的功能差异是flatten是ndarray对象的方法,因此只能为真正的numpy数组调用。相反,ravel()是一个库级函数,因此可以在任何可以成功解析的对象上调用。例如,ravel()将在ndarray列表上工作,而flatten(显然)则胜出。

另外,正如@jonrsharpe在他的评论中指出的那样,flatten方法总是返回一个副本,而ravel只会这样做&#34;如果需要的话。&#34;仍然不太确定如何做出这个决定。