Ami*_*ani 5 python csv numpy python-3.x
我正在尝试使用逗号分隔符使用numpy.savetxt将numpy数组写入.csv,但它缺少第一个条目(第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 = ",")
Run Code Online (Sandbox Code Playgroud)
我期望在标题ymin,ymax,xmin和xmax下有3行3列,我做了,但我缺少0.9.就像在我的.csv的第2行第1列是空的,在记事本中,我得到:
ymin, ymax, xmin, xmax
,2.999999999999999889e-01,2.000000000000000111e-01,4.000000000000000222e-01
8.000000000000000444e-01,5.000000000000000000e-01,2.000000000000000111e-01,2.999999999999999889e-01
5.999999999999999778e-01,6.999999999999999556e-01,1.000000000000000056e-01,5.000000000000000000e-01
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
当您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)
Run Code Online (Sandbox Code Playgroud)
正如 Andy 在评论中指出的那样,您可以np.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(csvfile, measurements, delimiter = ",")
# have to close the file yourself in this case
csvfile.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |