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

时间:2015-05-29 06:59:55

标签: arrays python-2.7 numpy

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

资源密集程度较低?

1 个答案:

答案 0 :(得分:3)

flatiter只是flatdocs)返回的迭代器对象的类型。所以你需要知道的是它和其他任何迭代器一样。

显然,flatten会消耗更多内存和cpu,因为它会创建一个新数组,而flat只会创建迭代器对象,这是超快的。

如果您只需要以平面方式迭代数组,请使用flat

如果您需要一个实际的平面数组(除了明确迭代它之外的目的),请使用flatten