Запись результатов нескольких ячеек в jupyter в один файл (без перезаписи) - PullRequest
0 голосов
/ 02 мая 2020

У меня есть блокнот Jupyter, в котором я запускаю одно и то же моделирование, используя множество различных комбинаций параметров (по сути, для моделирования различных версий среды и их влияния на результаты). Предположим, что результатом каждого запуска является изображение и двумерный массив всех соответствующих метрик для моей системы. Я хочу иметь возможность хранить изображения в записной книжке, но сохранять все массивы в одном месте, чтобы впоследствии я мог работать с ними при необходимости.

В идеале я хотел бы сохранить их во внешний файл с помощью следующий формат:

'Версия среды эксперимента i' (или другое описание)

2d массив

и каждый раз, когда я запускаю новую симуляцию (новую ячейку), результаты будут добавляться в этот файл, пока я не закрою его.

Есть идеи, как получить такой внешний файл сводки?

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

После небольшого количества попыток и ошибок приведем общий ответ, как писать в txt (без pandas, в противном случае см. Ответ @ jaybeesea)

with open("filename.txt", "a+") as f:
    f.write("Comment 1 \n")
    f.write("%s \n" %np.array2string(array, separator=' , '))

Каждый раз, когда вы запускаете его, он добавляет в файл "f".

0 голосов
/ 04 мая 2020

Если у вас есть Excel, вы можете использовать pandas для записи результатов в электронную таблицу (или вы можете использовать pandas - для записи в CSV ). См. Документацию здесь , но при добавлении и / или использовании нового листа вы, по сути, будете делать следующее:

import pandas as pd

for i in results:
    with pd.ExcelWriter('results.xlsx', mode='a') as writer:  
        df.to_excel(writer, sheet_name='Result'+i)

Вам понадобится ваш массив в фрейме данных 'df', Есть учебников о том, как поместить массив в pandas.

...