澄清 NumPy 中的 Flatten 和 Ravel 函数
NumPy 是一个强大的数值运算 Python 库,提供了两个看似相似的函数:flatten 和拉威尔。两者的目的都是将多维数组转换为一维数组。然而,它们之间存在微妙的区别。
Flatten 和 Ravel 的行为
考虑以下 NumPy 数组:
<code class="python">import numpy as np y = np.array(((1,2,3),(4,5,6),(7,8,9)))</code>
应用 flatten 函数结果:
<code class="python">print(y.flatten()) [1 2 3 4 5 6 7 8 9]</code>
类似地,ravel 函数产生相同的输出:
<code class="python">print(y.ravel()) [1 2 3 4 5 6 7 8 9]</code>
主要差异
虽然两个函数返回相同的结果一维数组,其底层行为存在重大差异。
摘要
Flatten 和 ravel 都是用于将多维 NumPy 数组展平为一维。 Flatten 创建内存副本,而 ravel 提供视图。 Ravel 速度更快,但需要仔细考虑修改,特别是在优化性能时。 Reshape((-1,)) 可在特定情况下使用,以优化内存使用和性能。
以上是## Flatten 与 Ravel:何时使用每个 NumPy 函数以及为什么?的详细内容。更多信息请关注PHP中文网其他相关文章!