【发布时间】:2022-01-22 11:16:16
【问题描述】:
有人可以澄清一下使用 Numba 类型列表而不是 ND 数组有什么好处?另外,两者在速度方面如何比较,在什么情况下建议使用类型化列表?
【问题讨论】:
标签: pandas performance numba
有人可以澄清一下使用 Numba 类型列表而不是 ND 数组有什么好处?另外,两者在速度方面如何比较,在什么情况下建议使用类型化列表?
【问题讨论】:
标签: pandas performance numba
类型列表在您需要追加一系列元素但您不知道元素总数并且甚至找不到合理的时很有用>绑定。这样的数据结构比一维数组(在内存空间和计算时间方面)要昂贵。
一维数组不能有效地调整大小:需要创建一个新数组并执行复制。但是,一维数组的索引非常便宜。 Numpy 还提供了许多可以本机对它们进行操作的函数(列表在传递给 Numpy 函数时会隐式转换为数组,这个过程很昂贵)。请注意,项目的数量可以限制在一个合理的大小(即不会比实际元素的数量高多少),您可以创建一个大数组,然后添加元素,最后在数组的子视图上工作.
ND 数组不能直接与列表进行比较。请注意,列表列表类似于 jagged 数组(它们可以包含不同大小的列表),而 ND 数组类似于(固定大小)N x ... x M 表。列表的列表效率非常低,通常不需要。
因此,尽可能使用 ND 数组,并且您不需要经常调整大小(或附加/删除元素)。否则,请使用类型列表。
【讨论】: