Jupyter Notebook: система интерактивных научных вычислений
Jupyter Notebook ― is a web-appendix which allows writing and supplying comments a code to Python in interactive regime. It is an exclusive method to make experiments and studies and intercommunicate with others. Many research people use this calculative medium in their works more often. The main fa...
Gespeichert in:
Datum: | 2019 |
---|---|
1. Verfasser: | |
Format: | Artikel |
Sprache: | Russian |
Veröffentlicht: |
Інститут геофізики ім. С.I. Субботіна НАН України
2019
|
Schriftenreihe: | Геофизический журнал |
Online Zugang: | http://dspace.nbuv.gov.ua/handle/123456789/158503 |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Zitieren: | Jupyter Notebook: система интерактивных научных вычислений / А.И. Якимчик // Геофизический журнал. — 2019. — Т. 41, № 2. — С. 112-121. — Бібліогр.: 19 назв. — рос. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-158503 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-1585032019-09-05T01:25:38Z Jupyter Notebook: система интерактивных научных вычислений Якимчик, А.И. Jupyter Notebook ― is a web-appendix which allows writing and supplying comments a code to Python in interactive regime. It is an exclusive method to make experiments and studies and intercommunicate with others. Many research people use this calculative medium in their works more often. The main factors of growing popularity of programming language Python and project Jupyter are characterized in brief. Jupyter Notebook ― веб-додаток, що дає змогу писати і постачати коментарями код на мові Python в інтерактивному режимі, а також спосіб експериментувати, досліджувати і ділитися своїми результатами з іншими. Все частіше багато дослідників використовує у своїх роботах зазначене обчислювальне середовище. У короткій формі висвітлено основні причини зростаючої популярності мови програмування Python і проекту Jupyter. Jupyter Notebook - веб-приложение, которое позволяет писать и поставлять комментариями код на языке Python в интерактивном режиме, а также способ экспериментировать, исследовать и делиться своими результатами с другими. Все чаще многие исследователи использует в своих работах указано вычислительную среду. В краткой форме изложены основные причины растущей популярности языка программирования Python и проекта Jupyter. 2019 Article Jupyter Notebook: система интерактивных научных вычислений / А.И. Якимчик // Геофизический журнал. — 2019. — Т. 41, № 2. — С. 112-121. — Бібліогр.: 19 назв. — рос. 0203-3100 DOI: 10.24028/gzh.0203-3100.v41i2.2019.164458 http://dspace.nbuv.gov.ua/handle/123456789/158503 004.43 + 519.62 ru Геофизический журнал Інститут геофізики ім. С.I. Субботіна НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Russian |
description |
Jupyter Notebook ― is a web-appendix which allows writing and supplying comments a code to Python in interactive regime. It is an exclusive method to make experiments and studies and intercommunicate with others. Many research people use this calculative medium in their works more often. The main factors of growing popularity of programming language Python and project Jupyter are characterized in brief. |
format |
Article |
author |
Якимчик, А.И. |
spellingShingle |
Якимчик, А.И. Jupyter Notebook: система интерактивных научных вычислений Геофизический журнал |
author_facet |
Якимчик, А.И. |
author_sort |
Якимчик, А.И. |
title |
Jupyter Notebook: система интерактивных научных вычислений |
title_short |
Jupyter Notebook: система интерактивных научных вычислений |
title_full |
Jupyter Notebook: система интерактивных научных вычислений |
title_fullStr |
Jupyter Notebook: система интерактивных научных вычислений |
title_full_unstemmed |
Jupyter Notebook: система интерактивных научных вычислений |
title_sort |
jupyter notebook: система интерактивных научных вычислений |
publisher |
Інститут геофізики ім. С.I. Субботіна НАН України |
publishDate |
2019 |
url |
http://dspace.nbuv.gov.ua/handle/123456789/158503 |
citation_txt |
Jupyter Notebook: система интерактивных научных вычислений / А.И. Якимчик // Геофизический журнал. — 2019. — Т. 41, № 2. — С. 112-121. — Бібліогр.: 19 назв. — рос. |
series |
Геофизический журнал |
work_keys_str_mv |
AT âkimčikai jupyternotebooksistemainteraktivnyhnaučnyhvyčislenij |
first_indexed |
2025-07-14T11:05:10Z |
last_indexed |
2025-07-14T11:05:10Z |
_version_ |
1837620119087349760 |
fulltext |
А. И. ЯКИМЧИК
112 Геофизический журнал № 2, Т. 41, 2019
Введение. За последние несколько де-
сятилетий язык программирования Python
превратился в первоклассный инструмент
для научных вычислений, включая анализ
и визуализацию больших наборов данных.
Это может удивить давних поклонников
Python: сам по себе этот язык не был соз-
дан в расчете на анализ данных или науч-
ные вычисления. В 2014 г. Фернандо Перес
(Fernando Perez) анонсировал дополни-
тельный уникальный проект от IPython
под названием Project Jupyter (https://
speakerdeck.com/fperez/project-jupyter).
Он похож на интерфейс блокнота других
программ, таких как Maple, Mathematica и
SageMath, стиль вычислительного интер-
УДК 004.43 + 519.62 DOI: 10.24028/gzh.0203-3100.v41i2.2019.164458
Jupyter Notebook:
система интерактивных научных вычислений
А. И. Якимчик, 2019
Институт геофизики им. С. И. Субботина НАН Украины, Киев, Украина
Поступила 17 декабря 2018 г.
Jupyter Notebook ― веб-додаток, що дає змогу писати і постачати коментарями
код на мові Python в інтерактивному режимі, а також спосіб експериментувати, до-
сліджувати і ділитися своїми результатами з іншими. Все частіше багато дослідників
використовує у своїх роботах зазначене обчислювальне середовище. У короткій
формі висвітлено основні причини зростаючої популярності мови програмування
Python і проекту Jupyter. Головні серед них: висока швидкість розробки і якість
програмного забезпечення; стандартна бібліотека, а також бібліотеки з відкритим
вихідним кодом NumPy, SciPy, Matplotlib та ін.; простота інтеграції з кодом на C, C++
і FORTRAN; вільне поширення; підтримка і величезне співтовариство розробників і
користувачів. За даними компанії TIOBE, яка щомісяця збирає статистику пошуко-
вих запитів і на підставі отриманих даних складає власні візуалізовані рейтинги мов
програмування, Python займає 3-тє місце за популярністю серед мов програмуван-
ня. Мову Python було обрано мовою року в 2007, 2010 і 2018 рр. Розглянуто аспекти
установки програм, бібліотек і пакетів в операційній системі Windows. Рекоменду-
ється завантажувати та встановлювати бібліотеки зі сховища whl-файлів на веб-
сторінці Крістофа Голка з лабораторії динаміки флуоресценції Каліфорнійського
університету. Формат WHL підтримується всіма основними платформами (Mac OS
X, Linux, Windows). Детально описано процес запуску сервера блокнотів Jupyter з
командного рядка. Продемонстровано простоту та ефективність наукових обчис-
лень в Jupyter Notebook. Наведено тестові розрахунки розв’язання задач лінійної
алгебри. Показано, що код обчислення матриці розміром 5000×5000 займає всього
кілька рядків.
Ключові слова: програмне забезпечення з відкритим вихідним кодом, мови про-
грамування, лінійна алгебра, матриця, тестові розрахунки.
фейса которых появился в Mathematica в
1980-х годах. Jupyter Notebook представ-
ляет собой своеобразный блокнот (тек-
стовый редактор) для браузера (рис. 1),
удобный для разработки, совместной ра-
боты и использования ресурсов, а также
для публикации научных результатов. Этот
инструмент может использоваться не толь-
ко с Python, но и с другими языками про-
граммирования: Julia, R, Haskell и Ruby.
Он часто используется для работы с дан-
ными, статистическим моделированием и
машинным обучением. Все чаще многие
исследователи используют в своих работах
вычислительную среду Jupyter [Tauxe et al.,
2016; Chudnov, 2016; Braun et al., 2017; Yang-
JUPYTER NOTEBOOK: СИСТЕМА ИНТЕРАКТИВНЫХ НАУЧНЫХ ВЫЧИСЛЕНИЙ
Геофизический журнал № 2, Т. 41, 2019 113
Min et al., 2018]. Узнать больше о Jupyter
Notebook можно на сайте jupyter (https://
jupyter.org).
Язык программирования Python инте-
ресен для студентов, разработчиков или
исследователей, в основном благодаря
большой и активно развивающейся эко-
системе пакетов, созданных сторонними
разработчиками:
• библиотеки NumPy — для работы с
однородными данными в виде мас-
сивов (http://www.numpy.org);
• библиотеки Pandas — для работы с
неоднородными и поименованными
данными (http://pandas.pydata.org);
• SciPy — для общих научных вычис-
лительных задач (https://docs.scipy.org/
doc);
• библиотеки Matplotlib — для визуа-
лизаций типографского качества
(https://matplotlib.org);
• оболочки Jupyter — для интерактив-
ного выполнения и совместного ис-
пользования кода (https://jupyter.org);
• библиотеки Scikit-Learn — для машин-
ного обучения и множества других
инструментов (https://scikit-learn.org/
stable).
Python — стабильный и распростра-
ненный язык. Он используется во мно-
гих проектах и в различных качествах:
как основной язык программирования
или для создания расширений и интегра-
ции приложений. На Python реализовано
большое количество проектов, он активно
используется для создания прототипов бу-
дущих программ, а также во многих круп-
ных компаниях для научных вычислений:
Dropbox, Google (например, некоторые
части Youtube и Youtube API написаны на
Python), Facebook, Instagram, NASA, Los
Alamos, Fermilab, JPL. Грег Стейн в марте
2005 г., выступая на собрании SDForum, со-
общил, что в компании Google язык Python
является одним из трех «официальных»
языков наряду с C++ и Java. Это говорит
о многом.
Рейтинг языков программирования
TIOBE. Очевидно, что необходимо изу-
чать языки программирования, которые
востребованы. В связи с этим сошлюсь
на индекс1 такой компании, как TIOBE
(https://www.tiobe.com). Она ежемесячно
собирает статистику поисковых запросов
и на основе полученных данных составля-
ет собственные визуализированные рей-
1 Индекс TIOBE (TIOBE programming community
index) – индекс, оценивающий популярность язы-
ков программирования на основе подсчета резуль-
татов поисковых запросов, содержащих название
языка. Для формирования индекса используется
поиск в нескольких наиболее посещаемых пор-
талах: Google, Blogger, Wikipedia, YouTube, Baidu,
Yahoo!, Bing, Amazon. Текущая информация предо-
ставляется бесплатно, но статистика за длительные
периоды доступна только за плату. Авторы индекса
считают, что он может быть полезен при принятии
стратегических решений. По заявлениям создате-
лей, индекс не ранжирует языки по качеству или
количеству написанного кода. Проект подразуме-
вает, что может существовать корреляция между
количеством найденных страниц и количеством
инженеров, курсов и вакансий.
Рис. 1. Страница блокнота Jupyter.
А. И. ЯКИМЧИК
114 Геофизический журнал № 2, Т. 41, 2019
тинги языков программирования в виде
следующей таблицы (рис. 2).
Как видно из рисунка, Python сейчас
занимает третье место в рейтинге языков
программирования TIOBE. Отметим, что
авторами TIOBE Python был выбран язы-
ком года (Programming Language of the Year)
в 2007, 2010 и 2018 гг.
Интересно посмотреть рейтинг языка
Python по годам (рис. 3). Первый пик попу-
лярности приходится на начало 2004 г., что
связано, скорее всего, с выходом второй
версии. Далее рейтинг — нестабилен. Он
то уменьшается, то увеличивается, но гло-
бальный тренд в целом восходящий, и на
декабрь 2018 г. рейтинг составляет 8,376 %.
Основные причины высокой популярно-
сти рассматриваемого языка следующие:
• качество программного обеспечения;
• простота и высокая скорость разра-
ботки;
• переносимость программ;
• библиотеки поддержки;
• интеграция компонентов.
Из недостатков выделим один. Это ско-
рость выполнения программ, которая не
всегда может быть такой же высокой, как
у программ, написанных на компилирую-
щих языках программирования, таких как
C или C++.
Существенной сильной стороной языка
является то, что Python может использо-
ваться и распространяться совершенно
бесплатно. Как и в случае с другими от-
Рис. 2. Топ 20 языков программирования.
JUPYTER NOTEBOOK: СИСТЕМА ИНТЕРАКТИВНЫХ НАУЧНЫХ ВЫЧИСЛЕНИЙ
Геофизический журнал № 2, Т. 41, 2019 115
крытыми программными продуктами,
можно получить в Интернете полные ис-
ходные тексты реализации Python. Нет
никаких ограничений на его копирование,
встраивание в свои системы или распро-
странение в составе ваших продуктов. Но
«свободный» не означает «не поддержи-
вается». Напротив, сообщество сторон-
ников Python в Интернете отвечает на во-
просы пользователей со скоростью, кото-
рой могло бы позавидовать большинство
разработчиков коммерческих продуктов.
Кроме того, свободное распространение
исходных текстов Python способствует
расширению команды экспертов по реа-
лизации. И хотя предоставляемая возмож-
ность изучать или изменять реализацию
языка программирования не у всех вызы-
вает восторг, тем не менее наличие послед-
ней инстанции в виде исходных текстов
придает уверенность. Вы уже не зависите
от прихотей коммерческого производи-
теля — в вашем распоряжении находится
полный комплект исчерпывающей доку-
ментации.
Важным аспектом является то, что Py-
thon прост в изучении. Дефицит пособий
по языку Python в мире отсутствует. Од-
ними из лучших, по моему мнению, явля-
ются книги Марка Саммерфилда, Билла
Любановича и Марка Лутца [Саммерфилд,
2009; Любанович, 2016; Лутц, 2011]. И не
секрет, что у Python найдется библиотека
практически для всего, что бы вы не за-
хотели реализовать.
Вопросы установки. Весь материал на-
стоящей статьи протестирован в среде
Windows 7. При тестировании исходного
кода за основу взят Python версии 3.7.1
(дата выхода — 20.10.2018 г.). Дистрибу-
тивный комплект программной среды
Python можно найти на официальном сай-
те (https://www.python.org). Этот комплект
в версии для Windows представляет собой
обычный пакет формата Microsoft Installer
(MSI) и доступен как в 32-, так и в 64-раз-
рядной редакциях. Установка Python не
представляет особой сложности и выпол-
няется точно так же, как и установка лю-
бого другого Windows-приложения. Есть
лишь пара существенных моментов, на
которые необходимо обратить внимание.
Они касаются базового набора библиотек
для разработчика, необходимых для даль-
нейшей работы.
Библиотеки для Python можно раз-
рабатывать не только на чистом Python.
До вольно часто библиотеки пишутся на
C (динамические библиотеки), и для них
пи шется обертка на Python. Или же биб-
Рис. 3. Индекс TIOBE для Python.
А. И. ЯКИМЧИК
116 Геофизический журнал № 2, Т. 41, 2019
лиоте ка пишется на Python, а для оптими-
зации узких мест часть кода пишется на
C. Такие библиотеки получаются очень
быстрыми, однако с вкраплениями кода
на C их программисту на Python тяжелее
установить вви ду банального отсутствия
соответ ст вую щих знаний либо необхо-
димых ком по нентов и настроек в рабо-
чей среде (в осо бенности в Windows). Для
решения опи санных проблем разработан
специальный формат (файлы с расшире-
нием whl) для распространения библиотек,
который содержит заранее скомпилиро-
ванную версию библиотеки со всеми ее
зависимос тями. Формат WHL поддержива-
ется всеми основными платформами (Mac
OS X, Linux, Windows).
В обычных условиях библиотеки Python
можно скачать и установить из каталога
библиотек Python PyPi (https://pypi.org) с
помощью менеджера пакетов pip. Однако
следует учесть, что в операционной систе-
ме Windows для работы некоторых библио-
тек, в частности SciPy, Scikit-learn и Scikit-
image, требуется, чтобы в системе была
установлена библиотека Numpy+MKL.
Библиотека Numpy+MKL привязана к
библиотеке Intel® Math Kernel Library и
включает в свой состав необходимые ди-
намические библиотеки (DLL) в каталоге
numpy.core. Библиотеку Numpy+MKL сле-
дует скачать из хранилища whl-файлов на
веб-странице Кристофа Голка из лабора-
тории динамики флуоресценции Калифор-
нийского университета в г. Ирвайн (https://
www.lfd.uci.edu/~gohlke/pythonlibs) и уста-
новить с помощью менеджера пакетов
pip как whl (соответствующая процедура
установки пакетов в формате whl описана
ниже). Например, для 64-разрядной опера-
ционной системы Windows и среды Python
3.7.1 команда будет такой:
pip install numpy-1.15.4+mkl-cp37-cp37m-
win_amd64.whl.
Такой режим установки также касается
библиотек scipy, scikit-image и scikit-learn.
Стоит отметить, что эти особенности уста-
новки не относятся к операционным си-
стемам Linux и Mac.
Запуск сервера записных книжек Ju-
py ter. Для установки2 Jupyter в операцион-
ной системе Windows необходимо набрать
и выполнить в командной строке
pip install jupyter,
а для обновления —
pip install -- upgrade jupyter.
Далее создаем папку для работы. На-
зовем ее, например, projects. Создадим в
ней текстовый файл с расширением cmd
и назовем его start.cmd (рис. 4). Содержи-
мое этого файла состоит из одной строчки:
jupyter-notebook. Дважды щелкнув по фай-
лу, запустим программу Jupyter Notebook:
создастся локальный веб-сервер, прослу-
шивающий сетевой порт с номером 8888,
далее автоматически на странице http://
localhost:8888/tree откроется веб-браузер.
Заметим, что окно командной строки за-
крывать нельзя (просто сворачиваем). По
умолчанию браузер показывает ту папку,
в которой мы находились, т. е. projects. На
уровень выше подняться не получится, но
можно создавать подпапки: New→Folder.
Рис. 4. Файл запуска.
Создадим новый блокнот для дальней-
шего запуска программ на языке Python 3:
New→Python 3. Откроется окно, похожее
на то, что показано на рис. 1. Описывать
здесь все, что можно делать в этой про-
грамме, нет необходимости. Все интуитив-
но понятно и имеется встроенная докумен-
тация. Дело в том, что объем интересной
информации, приемов, советов и инструк-
ций по работе с Jupyter Notebook соответ-
2 Альтернатива — установить дистрибутив Ana-
conda, в состав которого входит Jupyter Notebook.
Anaconda содержит более 400 самых популярных
библиотек Python для вычислений в области есте-
ственных наук, математики, инженерии и анализа
данных.
JUPYTER NOTEBOOK: СИСТЕМА ИНТЕРАКТИВНЫХ НАУЧНЫХ ВЫЧИСЛЕНИЙ
Геофизический журнал № 2, Т. 41, 2019 117
ствует почти безграничным возможностям
языка Python, помноженным на коллек-
тивный разум огромного сообщества раз-
работчиков и пользователей Jupyter. Это
делает нереальным и неэффективным опи-
сание их в какой-либо одной статье или
справочнике.
Тестовые расчеты. Эффективность ис-
пользования оболочки Jupyter продемон-
стрируем на решении нескольких задач
линейной алгебры. Это связано исклю-
чительно с тем, что автору данной статьи
близка эта проблематика [Черная, Яким-
чик, 2005а,б; Якимчик, Чорна, 2006; Яким-
чик, Черная, 2007].
Каждый, кому приходится иметь дело с
реализацией численных методов на ком-
пьютере, хорошо знает, насколько слож-
но отладить составленную программу.
Труд, затрачиваемый на поиск ошибок и
обоснование уверенности в правильно-
сти работы программы, нередко намного
превосходит усилия, связанные с напи-
санием самой программы. Решающее и
окончательное слово в процессе отладки
всегда остается за проведением серии те-
стовых расчетов. Конечно, публикуя про-
граммы, авторы, как правило, проводят ту
или иную работу по оценке их качества,
но чужие программы все-таки вызывают
естественное недоверие пользователя.
Рассеять это недоверие также помогают
тестовые расчеты.
В работе [Фаддеева, Колотилина, 1982а,
б,в] содержится значительное коли чество
тестовых примеров, предназначенных для
тестирования алгоритмов решения основ-
ных задач линейной алгебры. Тесты име-
ют довольно четкую систематизацию не
только по задачам, но и по особенностям
строения матриц.
Всего приведем три компактных при-
мера.
Тест 1. Вычисление обратной матри-
цы 1A− , если задана матрица A [Caffrey,
1963]. Формулы, записанные ниже, в точ-
ности соответствуют их написанию в на-
боре матриц для тестирования [Фаддеева,
Колотилина, 1982а,б,в]:
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
A
⎡ ⎤
⎢ ⎥
⎢ ⎥=
⎢ ⎥
⎢ ⎥
⎣ ⎦
,
1
4 6 4 1
6 14 11 3
4 11 10 3
1 3 3 1
A−
− −⎡ ⎤
⎢ ⎥− −⎢ ⎥=
⎢ ⎥− −
⎢ ⎥
− −⎣ ⎦
.
Тест 2. Решение системы линейных
уравнений Ax b= [Chan, Klassen, 1975]:
2 4 6
2 2 4
4 2 2
6 4 2
1 10 10 10
10 1 10 10
10 10 1 10
10 10 10 1
A
⎡ ⎤
⎢ ⎥
⎢ ⎥
= ⎢ ⎥
⎢ ⎥
⎢ ⎥
⎣ ⎦
,
10101101
10201
10201
10101101
b
⎡ ⎤
⎢ ⎥
⎢ ⎥=
⎢ ⎥
⎢ ⎥
⎣ ⎦
,
1
1
1
1
x
⎡ ⎤
⎢ ⎥
⎢ ⎥=
⎢ ⎥
⎢ ⎥
⎣ ⎦
.
Тест 3. Вычисление матрицы большой
размерности. В публикации [Страхов,
Страхов, 2002] с целью проверки тех-
нической корректности разработанных
программ и оценки их эффективности
были выполнены расчеты на модельных и
практических примерах. В частности ис-
пользовалась матрица размера 5000×5000
с элементами
( ) 2 2i j
ha
i j h
=
− +
,
1
2
h = .
На рис. 5 приведен код для всех трех
примеров. Подробную информацию о
инструкциях, используемых в коде, мож-
но найти в документации [Numpy..., 2018;
SciPy..., 2018]. Нетрудно заметить, что син-
таксис языка Python более чем интересен.
Он прост, понятен и нагляден. В некото-
ром смысле его можно даже назвать по-
спартански лаконичным. Одновременно
с этим программные коды, написанные
на Python, обычно легко читаются и ана-
лизируются, а объем программного кода
А. И. ЯКИМЧИК
118 Геофизический журнал № 2, Т. 41, 2019
Рис. 5. Код рассматриваемых примеров.
намного меньше, если сравнивать с анало-
гичными программами, написанными на
других языках программирования.
Заключение. Jupyter Notebook можно
охарактеризовать как мощь ipython, заклю-
ченную в интерактивную веб-страницу.
JUPYTER NOTEBOOK: СИСТЕМА ИНТЕРАКТИВНЫХ НАУЧНЫХ ВЫЧИСЛЕНИЙ
Геофизический журнал № 2, Т. 41, 2019 119
Самое примечательное в Jupyter Notebook
— возможность править и запускать код,
не покидая страницу, и, если есть необхо-
димость, также можно добавлять текст и
графические элементы. Ученые начинают
применять блокноты Jupyter для того, что-
бы публиковать свои исследования, вклю-
чая весь код и данные, использованные в
них. Jupyter Notebook — потрясающее
приложение на Python.
Благодарность. Автор выражает
при зна тельность канд. физ.-мат. наук
А. С. Сав чен ко (Институт геофизики НАН
Ук раи ны, Киев) за квалифицированную
по мощь, оказанную при подготовке руко-
писи к печати.
Лутц М. Изучаем Python. 4-е издание. Санкт-
Петербург: Символ-Плюс, 2011. 1280 с.
Любанович Б. Простой Python. Современный
стиль программирования. Санкт-Петербург:
Питер, 2016. 480 с.
Саммерфилд М. Программирование на Py th-
on 3. Подробное руководство. Санкт-Пе тер-
бург: Символ-Плюс, 2009. 608 с.
Страхов В. Н., Страхов А. В. Компьютерные
технологии нахождения устойчивых при-
ближенных решений систем линейных ал-
геб раических уравнений с приближенно
заданной правой частью. Вопросы теории
и практики геологической интерпретации
гравитационных, магнитных и электриче-
ских полей: Материалы 29-й сессии Между-
нар. семинара им. Д. Г. Успенского (Екате-
ринбург, 28 января―2 февраля 2002 г.). Ч. 2.
Москва: ОИФЗ РАН, 2002. С. 48―62.
Фаддеева В. Н., Колотилина Л. Ю. Вычисли-
тельные методы линейной алгебры. Набор
матриц для тестирования. Ч. 1. Ленинград:
ЛОМИ АН СССР, 1982a. 131 с.
Фаддеева В. Н., Колотилина Л. Ю. Вычисли-
тельные методы линейной алгебры. Набор
матриц для тестирования. Ч. 2. Ленинград:
ЛОМИ АН СССР, 1982б. 111 с.
Фаддеева В. Н., Колотилина Л. Ю. Вычисли-
тельные методы линейной алгебры. Набор
матриц для тестирования. Ч. 3. Ленинград:
ЛОМИ АН СССР, 1982в. 144 с.
Черная О. А., Якимчик А. И. О процессах
доортогонализации некоторых семейств
векторов, возникающих при построении
характеристических полиномов матриц и
используемых при решении систем линей-
ных алгебраических уравнений. 1. Геофиз.
журн. 2005a. Т. 27. № 3. С. 503―511.
Список литературы
Черная О. А., Якимчик А. И. О процессах до ор -
тогонализации некоторых семейств век то-
ров, возникающих при построении ха рак-
теристических полиномов матриц и исполь-
зуемых при решении систем линейных ал-
гебраических уравнений. 2. Геофиз. журн.
2005б. Т. 27. № 5. С. 790―805.
Якимчик А. И., Черная О. А. О нахождении
устойчивых приближенных решений си-
стем линейных алгебраических уравнений
с плохо обусловленными матрицами. Вопро-
сы теории и практики геологической интер-
претации гравитационных, магнитных и
электрических полей: Материалы 34-й сес-
сии Междунар. семинара им. Д. Г. Успенско-
го (Москва, 29 января―3 февраля 2007 г.).
Москва: Изд. ИФЗ РАН, 2007. С. 300―301.
Якимчик А. І., Чорна О. А. Про узагальнення
одного методу розв’язання систем лінійних
алгебраїчних рівнянь на випадок несиме-
тричної матриці, що мають місце в задачах
геофізики. Доп. НАН України. 2006. № 7.
С. 139―143.
Braun, N., Hauth, T., Pulvermacher, C., & Rit-
ter, M. (2017). An Interactive and Compre-
hensive Working Environment for High-
Energy Physics Software with Python and
Jupyter Notebooks. Journal of Physics: Con-
ference Series, 898, 072020. doi: 10.1088/1742-
6596/898/7/072020.
Caffrey, J. (1963). Another test matrix for deter-
minants and inverses. Communications of
the ACM, 6(6), 310. https://doi.org/10.1145/
366604.366618.
Chan, C., & Klassen, M. (1975). A performance
comparison study between subroutine pack-
ages LINSYS, IBMSSP and IMSL for sol-
ving systems of linear equations. Journal of
Computational and Applied Mathematics,
А. И. ЯКИМЧИК
120 Геофизический журнал № 2, Т. 41, 2019
1(2), 111―113. https://doi.org/10.1016/0771-
050X(75)90028-5.
Chudnov, D. (2016). The Intentional DATA SCI-
ENTIST (Part II): JUPYTER ― A New Kind
of Notebook. Computers in Libraries, 36(6),
26―28.
Numpy Reference Release 1.15.4. Written by the
NumPy community. (2018). [Электронный
ресурс]. Режим доступа: https://docs.scipy.
org/doc/numpy-1.15.4/numpy-ref-1.15.4.pdf.
SciPy Reference Guide. Release 1.1.0. Written by
the SciPy community. (2018). [Электронный
ресурс]. Режим доступа: https://docs.scipy.
org/doc/scipy-1.1.0/scipy-ref-1.1.0.pdf.
Tauxe, L., Shaar, R., Jonestrask, L., Swanson-
Hysell, N. L., Minnett, R., Koppers, A. A. P.,
Constable, C. G., Jarboe, N., Gaastra, K., &
Fairchild, L. (2016). PmagPy: software package
for paleomagnetic data analysis and a bridge
to the Magnetics Information Consortium
(MagIC) Database. Geochemistry, Geophys-
ics, Geosystems, 17(6), 2450―63. https://doi.
org/10.1002/2016GC006307.
Yang-Min, K., Jean-Baptiste, P., & Guillaume, D.
(2018). Experimenting with reproducibility: a
case study of robustness in bioinformatics. Gi-
gaScience, 7(7), 1―8. https://doi.org/10.1093/
gigascience/giy077.
Lutz, M. (2011). Learning Python. 4th edition. St.
Petersburg: Simvol-Plyus, 1280 p. (in Russian).
Lubanovic, B. (2016). Simple Python. Modern pro-
gramming style. St. Petersburg: Piter, 480 p. (in
Russian).
Jupyter Notebook:
a system for interactive scientific computing
A. I. Yakimchik, 2019
Jupyter Notebook ― is a web-appendix which allows writing and supplying comments
a code to Python in interactive regime. It is an exclusive method to make experiments
and studies and intercommunicate with others. Many research people use this calculative
medium in their works more often. The main factors of growing popularity of program-
ming language Python and project Jupyter are characterized in brief. The basic of them
are: high velocity of development and merit of software; standard library and libraries with
open initial code NumPy, SciPy, Matplotlib et al.; simplicity of integration with code to C,
C++ and FORTRAN; free distribution; support and numerous assemblage of designers and
users. According to the data of TIOBE company, collecting monthly statistics of search
inquiries and on the base of data obtained compiles its own visualized rates of program-
ming languages Python ranks the third place in popularity among programming languages.
It was chosen as a language of a year in 2007, 2010 and 2018. Aspects of installation of
programs, libraries and packets in operational system Windows have been considered.
It is recommended to download and install the libraries from the storage of whl-files
on the web-page by Christoph Gohlke from the laboratory of fluorescence dynamics of
California University. WHL format is supported by all basic platforms (Mac OS X, Linux,
Windows). The process of starting the server of Jupyter notebooks from command line
has been described in details. The simplicity and effectiveness of scientific calculations in
Jupyter Notebook have been demonstrated. Test calculations have been given for solving
the problems of linear algebra. It has been shown in particular that the code of calculation
of the matrix of 5000×5000 size occupies only several lines.
Key words: open source software, languages of programming, linear algebra, matrix,
test calculations.
References
Summerfield, M. (2009). Programming in Python 3.
A detailed guide. St. Petersburg: Simvol-Plyus,
608 p. (in Russian).
Strakhov, V. N., & Strakhov, A. V. (2002). Computer
technologies for finding stable approximate so-
JUPYTER NOTEBOOK: СИСТЕМА ИНТЕРАКТИВНЫХ НАУЧНЫХ ВЫЧИСЛЕНИЙ
Геофизический журнал № 2, Т. 41, 2019 121
lutions of systems of linear algebraic equations
with an approximately given right-hand side.
Theory and practice of the geological interpre-
tation of gravitational, magnetic and electric
fields: Proc. of the 29th session of the Intern.
seminar them. D. G. Uspensky (Ekaterinburg,
January 28―February 2, 2002) (pp. 48―62).
Part 2. Moscow: Edition of the Institute of Phys-
ics of the Earth RAS (in Russian).
Faddeeva, V. N., & Kolotilina, L. Yu. (1982a). Com-
putational methods of linear algebra. A set of
matrices for testing. Part 1. Leningrad: Publ. of
the Leningrad Branch of the Mathematical In-
stitute of the Academy of Sciences of the USSR,
131 p. (in Russian).
Faddeeva, V. N., & Kolotilina, L. Yu. (1982b). Com-
putational methods of linear algebra. A set of
matrices for testing. Part 2. Leningrad: Publ. of
the Leningrad Branch of the Mathematical In-
stitute of the Academy of Sciences of the USSR,
111 p. (in Russian).
Faddeeva, V. N., & Kolotilina, L. Yu. (1982c). Com-
putational methods of linear algebra. A set of
matrices for testing. Part 3. Leningrad: Publ. of
the Leningrad Branch of the Mathematical In-
stitute of the Academy of Sciences of the USSR,
144 p. (in Russian).
Chernaya, O. A., & Yakimchik, A. I. (2005a). On
the processes of pre-orthogonalization of some
vectors families which appear while plotting
characteristic polynomials of matrices and
used while solving the systems of linear al-
gebraic equations. 1. Geofizicheskiy zhurnal,
27(3), 503―511 (in Russian).
Chernaya, O. A., & Yakimchik, A. I. (2005b). On
the processes of pre-orthogonalization of some
vectors families which appear while plotting
characteristic polynomials of matrices and
used while solving the systems of linear al-
gebraic equations. 2. Geofizicheskiy zhurnal,
27(5), 790―805 (in Russian).
Yakimchik, A. I., & Chernaya, O. A. (2007). On
the determination of stable approximate solu-
tions of systems of linear algebraic equations
with ill-conditioned matrices. Questions of the
theory and practice of the geological interpre-
tation of gravitational, magnetic and electric
fields: Proc. of the 34th session of the Intern.
seminar them. D. G. Uspensky (Moscow, Janu-
ary 29 ― February 3, 2007). Moscow: Edition
of the Institute of Physics of the Earth RAS (in
Russian).
Yakimchik, A. I., Chorna, O. A. (2006). On the
generalization of a method for solving sys-
tems of linear algebraic equations in the case
of an asymmetric matrix that occur in prob-
lems of geophysics. Dopovidi NAN Ukrainy,
(7), 139―143 (in Ukrainian).
Braun, N., Hauth, T., Pulvermacher, C., & Rit-
ter, M. (2017). An Interactive and Compre-
hensive Working Environment for High-
Energy Physics Software with Python and
Jupyter Notebooks. Journal of Physics: Con-
ference Series, 898, 072020. doi: 10.1088/1742-
6596/898/7/072020.
Caffrey, J. (1963). Another test matrix for de ter-
minants and inverses. Communicati ons of the
ACM, 6(6), 310. https://doi.org/10.1145/366604.
366618.
Chan, C., & Klassen, M. (1975). A performance
comparison study between subroutine pack-
ages LINSYS, IBMSSP and IMSL for solv-
ing systems of linear equations. Journal of
Computational and Applied Mathematics,
1(2), 111―113. https://doi.org/10.1016/0771-
050X(75)90028-5.
Chudnov, D. (2016). The Intentional DATA SCI-
ENTIST (Part II): JUPYTER ― A New Kind
of Notebook. Computers in Libraries, 36(6),
26―28.
Numpy Reference. Release 1.15.4. Written by the
NumPy community. (2018). Retrieved from
https://docs.scipy.org/doc/numpy-1.15.4/
numpy-ref-1.15.4.pdf.
SciPy Reference Guide. Release 1.1.0. Written by
the SciPy community. (2018). Retrieved from
https://docs.scipy.org/doc/scipy-1.1.0/scipy-
ref-1.1.0.pdf.
Tauxe, L., Shaar, R., Jonestrask, L., Swanson-
Hysell, N. L., Minnett, R., Koppers, A. A. P.,
Constable, C. G., Jarboe, N., Gaastra, K., &
Fairchild, L. (2016). PmagPy: software package
for paleomagnetic data analysis and a bridge
to the Magnetics Information Consortium
(MagIC) Database. Geochemistry, Geophys-
ics, Geosystems, 17(6), 2450―63. https://doi.
org/10.1002/2016GC006307.
Yang-Min, K., Jean-Baptiste, P., & Guillaume, D.
(2018). Experimenting with reproducibility: a
case study of robustness in bioinformatics. Gi-
gaScience, 7(7), 1―8. https://doi.org/10.1093/
gigascience/giy077.
|