![](/img/trans.png)
[英]Convert numpy array from space separated to comma separated in python
[英]Write comma separated values from python numpy array
我正在創建一個自定義文件編寫器。 我需要寫出數組的值,以逗號分隔文件中的一行。 我可以執行以下操作:
def as_csv(array):
return ','.join([str(i) for i in array]) + '\n'
然后:
outfile.write(my_header)
outfile.write(other_stuff)
outfile.write(as_csv(array))
但我想知道這是否是最有效的方法,或者使用numpy.array_str或numpy.array_repr方法是否會有更好的方法。
您還可以使用內置的numpy方法np.savetxt
: http : np.savetxt
np.savetxt(outfile, array, delimiter=',')
我沒有嘗試在下面的上下文中使用np.savetxt
,也許只要在附加模式下打開文件就可以使用它,但這是我嘗試做的解決方案。 但是,它可能不是最有效的。
def _as_csv(self, values):
vals = ','.join([str(i) for i in values])
return vals + '\n'
def output(self, filename, series_cnt, series_name, series_type, startdate, N, values, step = 1000):
""" outputs data to a file """
starttime = startdate
num_imports = (N / step) + 1
outfile = open(filename.format(series_cnt, i), 'w')
outfile.write('#{0},{1},{2},\n'.format('TEST', startdate.strftime('%Y%m%d%H%M%S000'), str(num_imports)))
for i in range(0, N, step):
line_start = '/Test/{0},{1},{2},{3},'.format(series_name, series_type, starttime.strftime('%Y%m%d%H%M%S000'), step)
outfile.write(line_start)
nxt = i + step
starttime = starttime + dt.timedelta(hours=step)
outfile.write(self._as_csv(values[i:nxt]))
outfile.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.