numpy - numpy 中的 flatten 和 ravel 有什么区别?

标签 numpy

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

有什么区别?我什么时候可以选择一个与另一个来将二维 np.array 转换为一维?

最佳答案

啊哈: 主要的功能区别在于,flatten 是 ndarray 对象的一种方法,因此只能为真正的 numpy 数组调用。相反,ravel() 是一个库级函数,因此可以在任何可以成功解析的对象上调用。例如,ravel() 将在 ndarray 列表上工作,而 flatten(显然)则不会。

此外,正如 @jonrsharpe 在他的评论中指出的那样,flatten 方法总是返回一个副本,而 ravel 仅在“需要时”才这样做。仍然不太确定这个决定是如何做出的。

关于numpy - numpy 中的 flatten 和 ravel 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28837312/

相关文章:

numpy - 图像从 [3,M,N] 到 [M,N,3]

python - 安装 Pandas 的问题 : "command ' llvm-gcc-4. 2' failed with exit status 1"

python - numpy.r_ 中的字符串是什么意思?

python - numpy.array() 中的顺序参数有什么作用,也就是什么是连续顺序?

pandas - 计算可变窗口大小的滚动最大值,并根据该窗口大小调整位置

python - Numpy:获取比率组合列表,使它们全部加起来为 1

python - Python 中嵌套列表的算术运算

python - 如何使用二进制列表拆分 numpy 数组?

python3 (nltk/numpy/等) : ISO efficient way to compute find pairs of similar strings

python - 首选排序并将 1D 字节数组转换为 Numpy nd 数组?