何时使用三个展平参数中的哪一个'。flat'/'。flatiter'/'。flatten'?我知道'.flat'会在数组上返回1D迭代器,这是否意味着数组保留原始形状,并且可以使用单个索引访问数组中的每个元素(例如,使用单个for循环)阵列可以是高度维度的)。并且'.flatten'返回原始数组的完整副本,将其展平为1D数组。
资源密集程度较低?
答案 0 :(得分:3)
flatiter
只是flat
(docs)返回的迭代器对象的类型。所以你需要知道的是它和其他任何迭代器一样。
显然,flatten
会消耗更多内存和cpu,因为它会创建一个新数组,而flat
只会创建迭代器对象,这是超快的。
如果您只需要以平面方式迭代数组,请使用flat
。
如果您需要一个实际的平面数组(除了明确迭代它之外的目的),请使用flatten
。