процесс выполнения в Jupyter Notebook - PullRequest
1 голос
/ 02 августа 2020

У меня есть несколько вопросов о том, как Jupyter Notebook читает python строк кода. (Извините за то, что не могу загрузить изображение кода. У меня низкий уровень репутации.) Существует файл csv с именем 'train.csv', и я помещаю этот файл в переменную с именем 'titanic_df'

import pandas as pd
titanic_df=pd.read_csv('train.csv')
print(titanic_df)

this идет хорошо, когда он выполняется. Однако мой questioin:

import pandas as pd
# titanic_df=pd.read_csv('train.csv')
print(titanic_df)

, это также идет вразрез с моим намерением. Несмотря на то, что я закомментировал шаг чтения файла CSV, titanic_df печатает данные. Поскольку я запускаю тот же код на python, установленном на моем компьютере, и второй код не работает, я предполагаю, что есть некоторые различия в том, как Jupyter Notebook выполняет коды. Как работает Jupyter Notebook?

1 Ответ

1 голос
/ 02 августа 2020

Jupyter может сначала несколько сбивать с толку, но я объясню, что здесь происходит.

Последовательность событий произошла после того, как следующий код был запущен в Jupyter:

import pandas as pd
titanic_df=pd.read_csv('train.csv')
print(titanic_df)

In В этой первой строке кода вы импортировали модуль pandas и загрузили pandas в память. Модуль pandas доступен для использования. Во второй строке вы получаете доступ к функции pd.read_csv в модуле pandas.

Модуль pandas и его функции доступны при каждом вызове и загрузке в память. Функции pandas будут доступны для использования до тех пор, пока pandas не будет удален из памяти.

Следовательно, чтобы ответить на этот вопрос: Когда строка кода pd.read_csv закомментирована следующим образом:

# titanic_df=pd.read_csv('train.csv')

эта pandas функция не была удалена из памяти. Pandas все еще загружен в память. Единственное, что изменится, - это закомментированная строка кода, которая больше не будет выполняться или когда вы запускаете этот блок кода. Но модуль pandas и функции pandas останутся в памяти и будут доступны и готовы к использованию.

Даже если первая строка кода будет закомментирована, модуль pandas и его функции по-прежнему будут оставаться активными в памяти и готовы к использованию в Jupyter. Но если Jupyter перезапущен, модуль panda не будет перезагружен в память.

Также знайте о перезапуске ядра. Если бы вы закомментировали первую строку кода, но не вторую строку кода, а затем выбрали бы в Jupyter «Перезапустить ядро ​​и запустить все ячейки», то произошли бы две вещи. Модуль pandas не будет загружен, а затем вызов строки кода pd.read_csv вызовет ошибку. Ошибка возникает из-за того, что ваш код будет вызывать функцию pandas, но модуль pandas не установлен.

Сохраненный файл Jupyter Notebook будет запускать все ячейки в файле всякий раз, когда существующий файл открыт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...