In [26]: import csv
In [27]: X = np.arange(12).reshape(3,4)
In [28]: Y = np.arange(12)
In [29]: with open('background.csv','w',newline='') as csvfile:
...: fieldnames = ['image','answer']
...: writer = csv.DictWriter(csvfile,fieldnames=fieldnames)
...:
...: writer.writeheader()
...: writer.writerow({'image': X, 'answer':Y})
...:
In [30]: cat background.csv
image,answer
"[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]",[ 0 1 2 3 4 5 6 7 8 9 10 11]
DictWriter
записал str
представление 2 значений и заключило в кавычки многострочное:
In [31]: str(X)
Out[31]: '[[ 0 1 2 3]\n [ 4 5 6 7]\n [ 8 9 10 11]]'
Не существует удобного способа конвертировать str(X)
обратно в X
.
Хороший способ сохранить эти 2 массива был бы с помощью savez
:
In [40]: np.savez('background.npz', image=X, answer=Y)
In [42]: data = np.load('background.npz')
In [43]: list(data.keys())
Out[43]: ['image', 'answer']
In [44]: data['image']
Out[44]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
In [45]: data['answer']
Out[45]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])