本文介绍了numpy 中的 flatten 和 ravel 函数有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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]
两个函数都返回相同的列表.那么两个不同的功能执行相同的工作需要什么.
Both function return the same list.Then what is the need of two different functions performing same job.
推荐答案
目前的 API 是:
flatten
总是返回一个副本.ravel
尽可能返回原始数组的视图.这在打印输出中不可见,但如果您修改 ravel 返回的数组,它可能会修改原始数组中的条目.如果您修改从 flatten 返回的数组中的条目,这将永远不会发生.ravel 通常会更快,因为没有复制内存,但是您必须更加小心地修改它返回的数组.reshape((-1,))
只要数组的步幅允许它就会得到一个视图,即使这意味着你并不总是得到一个连续的数组.
这篇关于numpy 中的 flatten 和 ravel 函数有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!