Flatten() 和 Ravel() NumPy 函数的区别

2024 年 8 月 29 日 | 阅读 2 分钟

有两种方法可以将 Ndarray 转换为一维数组:flatten() 和 Ravel()。

那么问题来了,为什么会有两个不同的函数来执行相同的任务呢?

Flatten() 和 Ravel() 的区别

P.ravel()

  1. 仅返回原始数组的引用/视图
  2. 如果我们修改该数组,我们会发现原始数组的值也会改变。
  3. Ravel 比 flatten() 快,因为它不占用任何内存。
  4. Ravel 是库级别的函数。

P.flatten()

  1. 返回原始数组的副本
  2. 当您修改此数组的值时,原始数组的值不会改变。
  3. Flatten() 比 ravel() 快得多,因为它会占用内存。
  4. Flatten 是 ndarray 的一个方法。

让我们通过这段代码来看看 flatter() 和 ravel() 函数的区别。

代码

输出

Original array:
 
[[3 4 5 6]
 [5 3 6 7]]
Dimension of array:  2

 The output for RAVEL 

[3 4 5 6 5 3 6 7]
[1000    4    5    6    5    3    6    7]
[[1000    4    5    6]
 [   5    3    6    7]]
Dimension of array 1

 The output for FLATTEN 

[1000    4    5    6    5    3    6    7]
[0 4 5 6 5 3 6 7]
[[1000    4    5    6]
 [   5    3    6    7]]
Dimension of array  1

下一主题学习向量量化