【发布时间】:2017-02-15 21:36:41
【问题描述】:
我目前正在处理 Dstl 卫星 kaggle 挑战。在那里我需要创建一个 csv 格式的提交文件。 csv 中的每一行包含:
Image ID, polygon class (1-10), Polygons
多边形是一个很长的条目,包括开始、结束和开始等。
多边形是使用一种算法创建的,一次一个类,一次一张图片(429 张图片,每张 10 个类)。
现在我的问题与计算时间和最佳实践有关:如何最好地将我创建的多边形数据写入 csv?我是否在开始时打开 csv,然后在遍历类和图像时将每一行写入文件?
或者我应该将数据保存在列表或字典或其他东西中,然后将整个内容一次写入 csv 文件?
问题是,我不确定写入 csv 文件的速度有多快。此外,由于该算法在计算上已经相当消耗,我想省去我的电脑将所有数据保存在 RAM 中的麻烦。
而且我猜想立即将数据写入 csv 会减少使用的 RAM,对吧?
所以你说磁盘操作很慢。这到底是什么意思呢?当我在创建数据时实时写入 csv 每一行时,这会减慢我的程序吗?因此,如果我将整个列表写入一个比写入一行更快的 csv 文件,那么再次计算一个新的数据行?所以这意味着,计算机在下一个动作开始之前等待一个动作完成,对吧?但是,如果我等待整个数据累积,是什么让这个过程更快?反正同样的行数要写入csv,为什么我一行一行写会慢?
【问题讨论】:
标签: python loops csv time export-to-csv