arrays - 何时使用 '.flat', '.flatiter'或 '.flatten()'

标签 arrays python-2.7 numpy

什么时候使用三个展平参数'.flat'/'。flatiter'/'。flatten'中的哪个合适?我知道'.flat'在数组上返回一维迭代器,这是否意味着该数组保留原始形状,并且可以使用单个索引访问该数组中的每个元素(例如,即使使用单个for循环,阵列可能是高维的)。然后,“。flatten”返回被展平为一维数组的原始数组的完整副本。

哪个资源消耗较少?

最佳答案

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

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

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

如果您需要一个实际的平面数组(除了显式地对其进行迭代以外的其他目的),请使用flatten

关于arrays - 何时使用 '.flat', '.flatiter'或 '.flatten()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30523123/

相关文章:

javascript - 如何检查JavaScript数组中是否存在一个值,继续加0.15直到不存在,然后将该值添加到数组末尾?

c - 我需要帮助将结构数组传递给函数

python - 使用 Scrapy 在 Craigslist 上进行递归抓取

python - 将大矩阵保存到 python 中的 .txt 文件中

python - 替换 numpy 数组中的负值

Ruby:多维数组初始化的意外结果

c# - 在 C#2.0 中比较字符串与字符串数组的最快方法

python - 使用 write_shp 在 NetworkX 中写入 shapefile

python - 在 Python 中从多维数组中迭代和选择特定数组

python - 了解快速傅立叶变换方法的输出