本文介绍了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 函数有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-27 10:13