保存到 CSV - numpy.ndarray' 对象没有属性'append'



我试图在训练期间将图像的文件名附加到csv文件中,但遇到了一个错误。我可以打印值,但由于某些原因无法附加到csv文件。这是完整的代码:

File "train_filename.py", line 140, in <module>
names_preds.append() + 'n'
AttributeError: 'numpy.ndarray' object has no attribute 'append'
with open('preds_base_model_teste1016.csv','a') as fd:
#dict_writer = csv.writer(fd)
#dict_writer.writerow('Target' + 'n')
#dict_writer.writerow( ','.join(map(str, preds.detach().tolist())) + 'n')
#dict_writer.writerow('Prediction' + 'n')
#dict_writer.writerow( ','.join(map(str, targets.detach().tolist())) + 'n')
#fd.write('Target' + 'n')
fd.write(','.join(map(str, preds.detach().tolist())) + 'n')
#fd.write('Prediction' + 'n')
fd.write( ','.join(map(str, targets.detach().tolist())) + 'n')
#fd.write('Image_Name' + 'n')
np.append(paths)
#fd.write([filename])

使用concatenate而不是文档中所述的append

但是,看起来您确实没有试图向数组中添加任何内容。

你应该这样使用它:

names_preds.concatenate(some_value),其中concatenate中的值是要添加到数组中的值。

要将numpy数组保存到csv文件,有一种更简单的方法:

numpy.savetxt("foo.csv", names_preds, delimiter=",")

请参阅此答案中的详细信息。

更换您的线路:

np.append(paths)

带有

with open('preds_base_model_teste1016.csv','a') as fd:
np.savetxt(fd, names_preds, delimiter=",")

这将把所有路径附加到您已经指定的文件中。

更新:

根据你在评论中的问题,要将多个数组放在一起,这样你就可以得到列,你可以尝试:

with open('preds_base_model_teste1016.csv','a') as fd:
np.savetxt(fd, list(zip(a,b,c)), delimiter=",")

其中abc是要作为列的数组。

最新更新