何时使用'.flat','.flattiter'或'.flatten()'

Chr*_*rch 7 arrays numpy python-2.7

什么时候使用三个扁平化论证中的哪一个'.flat'/'.flatiter'/'.flatten'?我知道'.flat'会在数组上返回1D迭代器,这是否意味着数组保留原始形状,并且可以使用单个索引访问数组中的每个元素(例如,使用单个for循环)阵列可以是高度维度的).并且'.flatten'返回原始数组的完整副本,将其展平为1D数组.

哪个资源密集程度较低?

shx*_*hx2 5

flatiter只是flatdocs)返回的迭代器对象的类型。因此,您需要了解的就是它是一个与其他迭代器一样的迭代器。

显然,flatten由于它创建了一个新数组,因此消耗了更多的内存和cpu,而flat仅创建了迭代器对象,这是非常快的。

如果您所需要做的只是以平坦的方式遍历数组,请使用flat

如果您需要一个实际的平面数组(除了明确地对其进行迭代之外,还可以使用)flatten

  • 和`ravel`-一个视图。认为没有副本的“扁平化”。 (2认同)