Что такое jupyter-ноутбук и зачем он нужен

Если вы хоти­те писать на Python или зани­мать­ся дата-сайенсом, вот класс­ная шту­ка для вас. Это уже, счи­тай, стан­дарт для огром­но­го чис­ла пито­ни­стов, наслаждайтесь. 

Что такое jupyter-ноутбук

Jupyter-ноутбук — это сре­да раз­ра­бот­ки, где сра­зу мож­но видеть резуль­тат выпол­не­ния кода и его отдель­ных фраг­мен­тов. Отли­чие от тра­ди­ци­он­ной сре­ды раз­ра­бот­ки в том, что код мож­но раз­бить на кус­ки и выпол­нять их в про­из­воль­ном поряд­ке. Пред­ставь­те, что вы може­те напи­сать кусо­чек кода на сал­фет­ке и ска­зать сал­фет­ке: «Выпол­нись». 

В такой сре­де раз­ра­бот­ки мож­но, напри­мер, напи­сать функ­цию и сра­зу про­ве­рить её рабо­ту, без запус­ка про­грам­мы цели­ком. А ещё мож­но поме­нять поря­док выпол­не­ния кода. Мож­но отдель­но загру­зить файл в память, отдель­но про­ве­рить его содер­жи­мое, отдель­но обра­бо­тать содержимое. 

А ещё в jupyter-ноутбуках есть вывод резуль­та­та сра­зу после фраг­мен­та кода. Напри­мер, мож­но пря­мо в сере­дине кода уви­деть постро­ен­ный гра­фик, полу­чить пред­ва­ри­тель­ные циф­ры или любую дру­гую визуализацию.

Какие языки поддерживаются

Чаще все­го, когда гово­рят о jupyter-ноутбуках, име­ют в виду рабо­ту с Python. Но на самом деле мож­но рабо­тать и с другими:

  • Ruby
  • Perl
  • R
  • bash-скрипты

Для это­го исполь­зу­ют спе­ци­аль­ные маги­че­ские коман­ды, кото­рые так и назы­ва­ют­ся — magic-команды. Они поз­во­ля­ют запус­кать код на дру­гих язы­ках, а ещё суще­ствен­но рас­ши­ря­ют воз­мож­но­сти обыч­но­го Python. Про эти коман­ды мы пого­во­рим в отдель­ной статье.

Ноутбук в облаке

Jupyter-ноутбуки запус­ка­ют­ся на ком­пью­те­ре или в облаке. 

Про­ще все­го начать рабо­тать с ноут­бу­ком в обла­ке, напри­мер Google Colab. Это зна­чит, что вам доста­точ­но запу­стить бра­у­зер и открыть нуж­ную стра­ни­цу. После это­го облач­ная систе­ма выде­лит для вас ресур­сы и поз­во­лит выпол­нять любой код. 

Плюс под­хо­да в том, что вам не нуж­но ниче­го уста­нав­ли­вать на ком­пью­тер — обла­ко всё берёт на себя, а вы про­сто пише­те и запус­ка­е­те код. 

Минус — про­грам­ма может рабо­тать не так быст­ро, как на локаль­ной машине. Ещё если вам нуж­ны какие-то экзо­ти­че­ские биб­лио­те­ки, в обла­ке их может не оказаться.

Что такое jupyter-ноутбук и зачем он нужен Ноут­бук в гугл-облаке 
Что такое jupyter-ноутбук и зачем он нужен Ресур­сы, кото­рые нам выде­ли­ло обла­ко для рабо­ты с кодом 

Ноутбук на компьютере

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

Так как основ­ная сре­да в таком ноут­бу­ке — это Python, то для рабо­ты у вас уже дол­жен быть уста­нов­лен Python, после сам ноут­бук ста­вит­ся так:

pip3 install jupyter

После уста­нов­ки ноут­бук готов к запуску:

jupyter notebook

Эта коман­да откро­ет бра­у­зер, запу­стит локаль­ный сер­вер для рабо­ты ноут­бу­ка и пока­жет нам гото­вую сре­ду разработки:

Что такое jupyter-ноутбук и зачем он нужен

Аль­тер­на­тив­ный спо­соб — уста­но­вить «Ана­кон­ду», и там будет всё: и Python, и Jupyter, и куча дру­гих нуж­ных и полез­ных инструментов.

Как работать с ноутбуком

Самый про­стой спо­соб — писать в нём код и сра­зу видеть, что полу­ча­ет­ся после запус­ка. Напри­мер, возь­мём код из ста­тьи про рулет­ку и кази­но, вста­вим его в ноут­бук и запу­стим. Ноут­бук сра­зу же после кода пока­жет все дан­ные и нари­су­ет график:

Что такое jupyter-ноутбук и зачем он нужен

То же самое в jupyter-ноутбуке в гугл-облаке:

Что такое jupyter-ноутбук и зачем он нужен

Где применяются jupyter-ноутбуки

Основ­ная область при­ме­не­ния ноут­бу­ков — машин­ное обу­че­ние, ней­ро­се­ти, визу­а­ли­за­ция дан­ных и статистика. 

Ещё такую сре­ду часто исполь­зу­ют для поэтап­ной раз­ра­бот­ки, когда нуж­но по шагам про­ве­рять рабо­ту раз­ных фраг­мен­тов кода. Дело в том, что код в ноут­бу­ках хра­нит­ся в неза­ви­си­мых ячей­ках и его мож­но запус­кать в любом поряд­ке или пооди­ноч­ке. Это поз­во­ля­ет быст­ро экс­пе­ри­мен­ти­ро­вать с алго­рит­ма­ми и нахо­дить опти­маль­ное решение.

Так­же jupyter-ноутбуки исполь­зу­ют­ся при обу­че­нии про­грам­ми­ро­ва­нию на Python, что­бы писать код и сра­зу видеть резуль­тат его работы. 

Что дальше

В сле­ду­ю­щий раз осво­им ноут­бу­ки на прак­ти­ке — сде­ла­ем свой ноут­бук с кра­си­вы­ми гра­фи­ка­ми и бло­ка­ми кода.

Текст:

Миха­ил Полянин

Редак­тор:

Мак­сим Ильяхов

Худож­ник:

Даня Бер­ков­ский

Кор­рек­тор:

Ири­на Михеева

Вёрст­ка:

Ники­та Кучеров

Соц­се­ти:

Олег Веш­кур­цев