我需要保存几个不同的CSV列。目前我这样做:
f = open(out_csv, 'w', newline='')
w = csv.writer(f, delimiter=",", )
w.writerow(['id_a', 'id_b',
'lat_a','lon_a',
'lat_b','lon_b',
'proj_metres'])
w.writerows(np.column_stack((
id_labels[udist.row],
id_labels[udist.col],
points[udist.row],
points[udist.col],
udist.data)))
也许不重要,但为了完整性:
^{pr2}$维度大约是3000万×7列(其中两列是字符串:id峎labels),因此这需要一段时间(大约8分钟)并使用大量RAM,因为我认为python在调用时会创建一个新的临时对象np.column_堆栈因此,在某个时间点,它可以保存两倍于它需要的数据。在
我希望有没有更好的方法来创建我需要的CSV?在
您可以使用append选项打开一个文件,然后使用^{}
不一定很快,但是:
这不会占用比单独数组所需内存更多的内存。在
首先,逐个保存文件,以避免内存问题。在
让我们考虑三种解决方案:
一些测试:
^{pr2}$所以savetext稍微快一点。在
如果csv不是必需的,pickle提供一个二进制协议,它的速度要快40倍。在
相关问题 更多 >
编程相关推荐