我有一些数字(大约550000),我试图将它们保存在CSV文件中。我的值只能是1或2。但它被保存为:
['2.000000000000000000e+00']
['1.000000000000000000e+00']
['2.000000000000000000e+00']
['2.000000000000000000e+00']
...
我的代码是:
import numpy as np
def save_in_scv_format(My_Labels):
K = []
for i in range(len(My_Labels)):
K.append(My_Labels[i])
np.savetxt('My_labels.csv', K, delimiter = ',')
CCD_ 1是具有长度为550000的1或2的整数值的向量。
如何将这些值保存为1
或2
?
您可以更改输出中数值的格式。来自手册:
fmt:
str or sequence of strs, optional
A single format (%10.5f), a sequence of formats, or a multi-format string, e.g. ‘Iteration %d – %10.5f’, in which case delimiter is ignored.
所以试试:
np.savetxt('My_labels.csv', K, delimiter = ',', fmt='%d')
但是,此代码还有其他问题。
import numpy as np
def save_in_csv_format(My_Labels):
np.savetxt('My_labels.csv', My_Labels, delimiter = ',', fmt='%d')
这应该做完全相同的事情,而且效率要高得多。
首先要指出的是,假设My_Labels
是您建议的列表,则代码中指示的部分是多余的:
def save_in_scv_format(My_Labels):
import numpy as np
K = [] # <--
for i in range(len(My_Labels)): # <--
K.append(My_Labels[i]) # <--
np.savetxt('My_labels.csv', K, delimiter = ',')
你也可以写:
def save_in_scv_format(My_Labels):
import numpy as np
np.savetxt('My_labels.csv', My_Labels, delimiter = ',')
但我不认为你需要numpy来做你想做的事情
def save_in_scv_format(My_Labels):
with open('My_labels.csv', 'w') as f:
f.write(','.join(My_Labels))
可能会起作用,而且更好。
或者,你可以做一些类似的事情:
def save_in_scv_format(My_Labels):
with open('My_labels.csv', 'w') as f:
f.write(str(My_Labels))
这将保留封闭的方括号,并在整数之间添加空格。
还有csv和pickle模块,您可以查看,以获得将列表输出到文件的替代方法。
n.b.如果我误解了,例如My_Labels
是一个numpy数组,那么类似于:
my_array = My_Labels.tolist()
(docs)是创建python列表的一种更干净的方法。