Очистить все переменные, которые были определены в ячейке Юпитера после завершения выполнения - PullRequest
0 голосов
/ 03 мая 2018

Мне нужно импортировать и манипулировать тяжелыми данными в памяти в jupyter. Поскольку у меня, как правило, довольно длинные записные книжки, в которых будет импортироваться несколько наборов данных, мне нужно постоянно очищать их вручную. Это прилив.

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

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

Подведем итог:

  • Ячейка 1:

    переменные накладные расходы # это будет использоваться во всей записной книжке

  • Ячейка 2:

    импорт или генерация данных и манипулирование данными

    очистить все переменные, введенные в ячейку, без необходимости адресации каждый из них от руки <- это то, что я ищу. </p>

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Это не чистое решение, но ячейки, данные которых мне нужно хранить, не требуют больших вычислительных затрат. Поэтому мне было удобнее всего:

%reset -f
exec In[n:m]

Надеюсь, кто-нибудь найдет это полезным. В любом случае, я бы хотел найти более чистый подход к этой проблеме!

0 голосов
/ 03 мая 2018

Вы можете сбросить переменные в блокноте Jupyter, введя в код следующую магическую команду :

%reset_selective -f [var1, var2, var3]

Если вы добавите такие строки в свой код, он должен оставаться читабельным.

Чтобы полностью ответить на ваш вопрос - в настоящий момент я не думаю, что существует команда, которая бы автоматически находила все переменные, созданные в определенной ячейке, и сбрасывала только их. (Кто-то, пожалуйста, поправьте меня, если я ошибаюсь.)

Но вы можете использовать следующий код, который удаляет именно те объекты пространства имен, которые были недавно созданы в ячейке. Это, вероятно, то, что вы хотели:

from IPython import get_ipython

my_variables = set(dir())  # Write this line at the beginning of cell

# Here is the content of the cell

my_variables = list(set(dir()) - my_variables)  # Write these 2 lines at the end of cell
get_ipython().magic('%reset_selective -f [{}]'.format(','.join(my_variables)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...