何时使用'.flat','.flatiter'或'.flatten()' [英] When to use '.flat', '.flatiter' or '.flatten()'

查看:80
本文介绍了何时使用'.flat','.flatiter'或'.flatten()'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

When is it appropriate to use which of the three flattening arguments '.flat'/'.flatiter'/'.flatten'? I know that '.flat' returns a 1D iterator over an array, does this mean that the array is left in the original shape and each element in the array can be accessed with a single index (for example using a single for loop even though the array may be highly dimensional). And '.flatten' returns a complete copy of the original array flattened out into a 1D array.

哪些资源消耗较少?

推荐答案

flatiter只是flat(

flatiter is just the type of the iterator object returned by flat (docs). So all you need to know about it is that it's an iterator like any other.

很明显,flatten在创建新数组时会消耗更多的内存和cpu,而flat仅创建超快的迭代器对象.

Obviously, flatten consumes more memory and cpu, as it creates a new array, while flat only creates the iterator object, which is super fast.

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

If all you need is to iterate over the array, in a flat manner, use flat.

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

If you need an actual flat array (for purposes other than just explicitly iterating over it), use flatten.

这篇关于何时使用'.flat','.flatiter'或'.flatten()'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆