python - 将多个 numpy 数组保存到一个 csv

标签 python csv numpy

我有几个不同的“列”需要保存到 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)))

也许并不重要,但为了完整性:

tree_dist = tree.sparse_distance_matrix(tree)
udist = sparse.tril(tree_dist, k=-1)

尺寸约为 3000 万乘 7 列(其中两列是字符串:id_labels) - 因此这需要一段时间(大约 8 分钟)并使用大量 RAM,因为我认为 python 在调用时会创建一个新的临时对象np.column_stack 因此在某个时间点它保存的数据是所需数据的两倍。

我希望有更好的方法来创建我需要的 CSV?

最佳答案

您可以使用append选项打开文件,然后使用np.savetxt

import numpy as np
array1 = np.arange(12).reshape((2, 6))
array2 = np.ones(18).reshape((3, 6))
with open('outputfile.csv', 'ab') as f:
    np.savetxt(f, array1, delimiter=',')
    np.savetxt(f, array2, delimiter=',')

关于python - 将多个 numpy 数组保存到一个 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35723905/

相关文章:

python - 在 python 中为纸牌游戏实现套牌的最佳方法

javascript - Python Flask 网络服务器未接收到 JSON ajax POST 请求,服务器返回 HTTP 200 OPTIONS 而不是 201 POST

javascript - Bokeh :在图像图中实现自定义 javascript

csv - Spark 2.0 Scala - 读取带有转义分隔符的 csv 文件

python - python中二维和一维数组的元素明智乘法

python - 有没有办法加快python中的嵌套for循环?

python - 确认 Python 2.6 ftplib 不支持 Unicode 文件名?备择方案?

matlab - 循环遍历matlab中文件夹中的文件

asp.net - 响应内容类型为 CSV

python - 如何使用循环而不是内置函数在 Python 中生成 Toeplitz 矩阵