我正在写一些函数,它们沿着目录树向下走,在那里按名称对文件进行排序,并将它们编码+在一个表中的更多信息。在
我将这个表定义为Numpy vstack数组。 一开始,向数组中添加条目的速度非常快,但是当它达到大约20000个条目时,速度会慢很多。如此之多,以至于要达到大约9万排人口的目标大约需要10分钟
我非常怀疑vstack是罪魁祸首,因为它可能复制了整个表+我附加到它的行。 官方的Numpy文档说vstacking只不过是“连接”。。。但这不能回答我的问题。在
因此,是np.vstack公司()看看它将要粘在一起的数组的大小,然后将所需内存进行mallocate,然后复制我们正在堆叠的数组的内容?在
更新: 就统计数据而言,女士们先生们,使用列表可以使执行时间达到0.5s,这是20倍多的速度,实际上它甚至比这个还要短,因为我的度量包含了一些额外的操作。在
你说得对,
np.vstack
复制了整个数组。在您可以做一个小的python体验来确认它:
然后,如果修改数组}是
未修改
^{pr2}$a
并打印res,您可以看到{相关问题 更多 >
编程相关推荐