使用将数据写入csv时缺少第一个条目numpy.savetxt()

2024-04-18 23:53:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用numpy.savetxt使用逗号分隔符,但是它缺少第一个条目(第1行第1列),我不知道为什么。在

我对用Python编程相当陌生,这可能只是我调用方式的一个问题numpy.savetxt或者我定义数组的方式。总之,我的代码是:

import numpy as np
import csv

# preparing csv file
csvfile = open("np_csv_test.csv", "w")
columns = "ymin, ymax, xmin, xmax\n"
csvfile.write(columns)
measurements = np.array([[0.9, 0.3, 0.2, 0.4],
                     [0.8, 0.5, 0.2, 0.3],
                     [0.6, 0.7, 0.1, 0.5]])

np.savetxt("np_csv_test.csv", measurements, delimiter = ",")

我期望在标题ymin、ymax、xmin和xmax下有4列3行,我做到了,但缺少0.9。如中所示,my.csv的第2行第1列为空,而在记事本中,我得到:

^{2}$

我做错什么了?在


Tags: columnscsvcsvfiletestimportnumpynp方式
1条回答
网友
1楼 · 发布于 2024-04-18 23:53:10

当您使用输出文件的路径调用np.savetxt时,它将尝试覆盖任何现有的文件,这不是您想要的。以下是如何使用列标题编写所需的文件:

import numpy as np

# preparing csv file
columns = "ymin, ymax, xmin, xmax"
measurements = np.array([[0.9, 0.3, 0.2, 0.4],
                     [0.8, 0.5, 0.2, 0.3],
                     [0.6, 0.7, 0.1, 0.5]])

np.savetxt("np_csv_test.csv", measurements, delimiter = ",", header=columns)

正如Andy在评论中指出的,通过传递文件句柄而不是文件名,可以让{}附加到现有文件中。因此,另一种获取所需文件的有效方法是:

^{pr2}$

相关问题 更多 >