Programmers ­‑ ‑‑, ‑,,,, ­­­­­ ­­­­­­‑‑‑‑‑‑‑ ­­­­­­­‑‑‑‑‑‑‑2020 ббк



Download 0,77 Mb.
bet6/20
Sana22.02.2022
Hajmi0,77 Mb.
#80758
1   2   3   4   5   6   7   8   9   ...   20
Bog'liq
kk


Часть 3: Нетривиальные аспекты Python
Ниже приведена сводка зависимостей между главами для глав 10; предполагается, что вы уже прочитали главы 1–5.
ØØ
Глава 10 «Объектно-ориентированное программирование» — раздел «Введение в data science» требует знания возможностей DataFrame из раздела 7.14. Преподаватели, которые намерены ограничиваться рассмотрением только классов и объектов, могут изложить материал разделов 10.1–10.6. Для преподавателей, которые собираются изложить более сложные темы (наследование, полиморфизм, утиная типизация), могут представлять интерес разделы 10.7–10.9. В разделах 10.10–10.15 изложены дополнительные перспективы.
Часть 4: Искусственный интеллект, облачные технологии и практические примеры больших данных
Ниже приведена сводка зависимостей между главами для глав 11–16; предполагается, что вы уже прочитали главы 1–5. Большинство глав 11–16 также требует знания словарей из раздела 6.2.
ØØ
В главе 11 «Обработка естественного языка» используются возможности pandas DataFrame из раздела 7.14.
ØØ
В главе 12 «Глубокий анализ данных Twitter» используются возможности pandas DataFrame из раздела 7.14, метод строк join (раздел 8.9), основы работы с JSON (раздел 9.5), TextBlob (раздел 11.2) и словарные облака
34 Предисловие
(раздел 11.3). Некоторые примеры требуют определения классов с наследованием (глава 10).
ØØ
В главе 13 «IBM Watson и когнитивные вычисления» используется встроенная функция open и команда with (раздел 9.3).
ØØ
В главе 14 «Машинное обучение: классификация, регрессия и кластеризация» используются основные средства работы с массивами NumPy и метод unique (глава 7), возможности pandas DataFrame из раздела 7.14, а также функция subplots библиотеки Matplotlib (раздел 10.6).
ØØ
В главе 15 «Глубокое обучение» используются основные средства работы с массивами NumPy (глава 7), метод строк join (раздел 8.9), общие концепции машинного обучения из главы 14 и функциональность из практического примера главы 14 «Классификация методом k ближайших соседей и набор данных Digits».
ØØ
В главе 16 «Большие данные: Hadoop, Spark, NoSQL и IoT» используется метод строк split (раздел 6.2.7), объект Matplotlib FuncAnimation из раздела 6.4, коллекции pandas Series и DataFrame из раздела 7.14, метод строк join (раздел 8.9), модуль JSON (раздел 9.5), игнорируемые слова NLTK (раздел 11.2.13), аутентификация Twitter из главы 12, класс Tweepy StreamListener для потоковой передачи твитов, а также библиотеки geopy и folium. Некоторые примеры требуют определения классов с применением наследования (глава 10), но вы можете просто повторить наши определения классов без чтения главы 10.
Документы Jupyter Notebook
Для вашего удобства мы предоставили примеры кода книги в файлах с исходным кодом Python (.py) для использования с интерпретатором командной строки IPython, а также файлы Jupyter Notebook (.ipynb), которые можно загрузить в браузере и выполнить.
Jupyter Notebook — бесплатный проект с открытым кодом, который позволяет объединять текст, графику, аудио, видео и функциональность интерактивного программирования для быстрого и удобного ввода, редактирования, выполнения, отладки и изменения кода в браузере. Фрагмент статьи «Что такое Jupyter?»:
«Jupyter стал фактическим стандартом для научных исследований и анализа данных. Вычисления упаковываются вместе с аргументами, позволяя вам строить “вычислительные нарративы”; …это упрощает проблему
Спрос на квалификацию в области data science 35
распространения работоспособного кода между коллегами и участниками сообщества»1.
Наш опыт показывает, что эта среда прекрасно подходит для обучения и быстрой прототипизации. По этой причине мы используем документы Jupyter Notebook вместо традиционных интегрированных сред (IDE), таких как Eclipse, Visual Studio, PyCharm или Spyder. Ученые и специалисты уже широко применяют Jupyter для распространения результатов своих исследований. Поддержка Jupyter Notebook предоставляется через традиционные механизмы сообщества с открытым кодом2 (см. раздел «Поддержка Jupyter» в этом предисловии). За подробным описанием установки обращайтесь к разделу «Приступая к работе» после предисловия, а информация о запуске примеров книги приведена в разделе 1.5.
Совместная работа и обмен результатами
Работа в команде и распространение результатов исследований играют важную роль для разработчиков, которые занимают или собираются занять должность, связанную с аналитикой данных, в коммерческих, правительственных или образовательных организациях:
ØØ
Созданные вами документы Notebook удобно распространять среди участников команды простым копированием файлов или через GitHub.
ØØ
Результаты исследований, включая код и аналитику, могут публиковаться в виде статических веб-страниц при помощи таких инструментов, как nbviewer (https://nbviewer.jupyter.org) и GitHub, — оба ресурса автоматически визуализируют документы Notebook в виде веб-страниц.
Воспроизводимость результатов: веский аргумент в пользу Jupyter Notebook
В области data science и научных дисциплин вообще эксперименты и исследования должны быть воспроизводимыми. Об этом неоднократно упоминалось в литературе:
ØØ
Публикация Дональда Кнута «Грамотное программирование» в 1992 году3.
1 https://www.oreilly.com/ideas/what-is-jupyter.
2 https://jupyter.org/community.
3 Knuth D. Literate Programming (PDF), The Computer Journal, British Computer Society, 1992.
36 Предисловие
ØØ
Статья «Языково-независимый воспроизводимый анализ данных с применением грамотного программирования»1, в которой сказано: «Lir-вычисления (грамотные воспроизводимые вычисления) базируются на концепции грамотного программирования, предложенной Дональдом Кнутом».
По сути, воспроизводимость отражает полное состояние среды, использованной для получения результатов: оборудование, программное обеспечение, коммуникации, алгоритмы (особенно код), данные и родословная данных (источник и линия происхождения).
Docker
В главе 16 используется Docker — инструмент для упаковки программного кода в контейнеры, содержащие все необходимое для удобного, воспроизводимого и портируемого выполнения этого кода между платформами. Некоторые программные пакеты, используемые в главе 16, требуют сложной подготовки и настройки. Для многих из них можно бесплатно загрузить готовые контейнеры Docker. Это позволяет избежать сложных проблем установки и запускать программные продукты локально на настольном или портативном компьютере. Docker предоставляет идеальную возможность быстро и удобно приступить к использованию новых технологий.
Docker также помогает обеспечить воспроизводимость. Вы можете создавать специализированные контейнеры Docker с нужными версиями всех программных продуктов и всех библиотек, использованных в исследовании. Это позволит другим разработчикам воссоздать использованную вами среду, а затем повторить вашу работу и получить ваши результаты. В главе 16 мы используем Docker для загрузки и выполнения контейнера, заранее настроенного для программирования и запуска Spark-приложений больших данных на базе Jupyter Notebook.
IBM Watson и когнитивные вычисления
На ранней стадии исследований, проводимых для этой книги, мы распознали быстро растущий интерес к IBM Watson. Мы проанализировали предложения конкурентов и обнаружили, что политика Watson «без ввода данных кредит1
http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0164023.
Спрос на квалификацию в области data science 37
ной карты» для бесплатных уровней является одной из самых удобных для наших читателей.
IBM Watson — платформа когнитивных вычислений, применяемая в широком спектре реальных сценариев. Системы когнитивных вычислений моделируют функции человеческого мозга по выявлению закономерностей и принятию решений для «обучения» с поглощением большего объема данных1,2,3. В книге Watson уделяется значительное внимание. Мы используем бесплатный пакет Watson Developer Cloud: Python SDK, который предоставляет различные API для взаимодействия с сервисами Watson на программном уровне. С Watson интересно работать, и эта платформа помогает раскрыть ваш творческий потенциал.
Сервисы Watson уровня Lite и практический пример Watson
Чтобы способствовать обучению и экспериментам, IBM предоставляет бесплатные lite-уровни для многих своих API4. В главе 13 будут опробованы демонстрационные приложения для многих сервисов Watson5. Затем мы используем lite-уровни сервисов Watson Text to Speech, Speech to Text и Translate для реализации приложения-переводчика. Пользователь произносит вопрос на английском языке, приложение преобразует речь в английский текст, переводит текст на испанский язык и зачитывает испанский текст. Собеседник произносит ответ на испанском языке (если вы не говорите на испанском, мы предоставили аудиофайл, который вы можете использовать). Приложение быстро преобразует речь в испанский текст, переводит текст на английский и зачитывает ответ на английском. Круто!
Подход к обучению
«Python: Искусственный интеллект, большие данные и облачные вычисления» содержит обширную подборку примеров, позаимствованных из многих областей. Мы рассмотрим некоторые интересные примеры с реальными наборами данных. В книге основное внимание уделяется принципам качественного
1 http://whatis.techtarget.com/definition/cognitive-computing.
2 https://en.wikipedia.org/wiki/Cognitive_computing.
3 https://www.forbes.com/sites/bernardmarr/2016/03/23/what-everyone-should-know-about-cognitive-computing.
4 Всегда проверяйте последние условия предоставления сервиса на сайте IBM, так как условия и сервисы могут меняться со временем.
5 https://console.bluemix.net/catalog/.
38 Предисловие
проектирования программных продуктов, а на передний план выходит ясность кода.
538 примеров кода
538 примеров, приведенных в книге, содержат приблизительно 4000 строк кода. Это относительно небольшой объем для книги такого размера, что отчасти объясняется выразительностью языка Python. Кроме того, наш стиль программирования подразумевает, что мы по возможности используем полнофункциональные библиотеки классов; эти библиотеки берут на себя большую часть работы.
160 таблиц/иллюстраций/визуализаций
В книгу включено множество таблиц, графиков, а также статических, динамических и интерактивных визуализаций.
Житейская мудрость программирования
В материал книги интегрируется житейская мудрость программирования, основанная на девяти десятилетиях (в сумме) авторского опыта программирования и преподавания.
ØØ
Хороший стиль программирования и общепринятые идиомы Python помогают создавать более понятные, более четкие и простые в сопровождении программы.
ØØ
Описание распространенных ошибок программирования снижает вероятность того, что эти ошибки будут допущены читателями.
ØØ
Советы по предотвращению ошибок с рекомендациями по выявлению дефектов и исключению их из программ. Во многих советах описываются приемы, которые препятствуют изначальному проникновению ошибок в ваши программы.
ØØ
Советы по быстродействию, в которых выделяются возможности для ускорения работы ваших программ или сокращения объема занимаемой памяти.
ØØ
Наблюдения из области программирования, в которых выделяются архитектурные и проектировочные аспекты правильного построения программных продуктов (особенно для больших систем).
Ответы на вопросы 39
Программные продукты, используемые в книге
Программные продукты, используемые в книге, доступны для Windows, macOS и Linux, и их можно бесплатно загрузить из интернета. Для написания примеров используется бесплатный дистрибутив Anaconda Python. Он включает большую часть Python, библиотек визуализации и data science, которые вам понадобятся, а также интерпретатор IPython, Jupyter Notebook и Spyder — одну из самых лучших интегрированных сред Python для data science. Для разработки программ, приведенных в книге, используется только IPython и Jupyter Notebook. В разделе «Приступая к работе» после предисловия обсуждается установка Anaconda и других продуктов, необходимых для работы с нашими примерами.
Документация Python
Следующая документация особенно пригодится вам во время работы с книгой:
ØØ
Справочник по языку Python:
https://docs.python.org/3/reference/index.html
ØØ
Стандартная библиотека Python:
https://docs.python.org/3/library/index.html
ØØ
Список документации Python:
https://docs.python.org/3/
Ответы на вопросы
Несколько популярных форумов, посвященных Python и программированию вообще:
ØØ
python-forum.io
ØØ
https://www.dreamincode.net/forums/forum/29-python/
ØØ
StackOverflow.com
Кроме того, многие разработчики открывают форумы по своим инструментариям и библиотекам. Управление и сопровождение многих библиотек, используемых в книге, осуществляется через github.com. Для некоторых библиотек поддержка предоставляется через вкладку Issues на странице GinHub этих
40 Предисловие
библиотек. Если вы не найдете ответ на свои вопросы, посетите веб-страницу этой книги на сайте
http://www.deitel.com1
Поддержка Jupyter
Поддержка Jupyter Notebook предоставляется на следующих ресурсах:
ØØ
Project Jupyter Google Group:
https://groups.google.com/forum/#!forum/jupyter
ØØ
Jupyter-чат в реальном времени:
https://gitter.im/jupyter/jupyter
ØØ
GitHub
https://github.com/jupyter/help
ØØ
StackOverflow:
https://stackoverflow.com/questions/tagged/jupyter
ØØ
Jupyter for Education Google Group (для преподавателей, использующих Jupyter в ходе обучения):
https://groups.google.com/forum/#!forum/jupyter-education
Приложения
Чтобы извлечь максимум пользы из материала, выполняйте каждый пример кода параллельно с соответствующим описанием в книге. На веб-странице книги на сайте
http://www.deitel.com
предоставляются:
ØØ
исходный код Python (файлы .py), подготовленный к загрузке, и документы Jupyter Notebook (файлы .ipynb) для примеров кода;
ØØ
видеоролики, поясняющие использование примеров кода с IPython и документами Jupyter Notebook. Эти инструменты также описаны в разделе 1.5;
1 Наш сайт сейчас проходит серьезную переработку. Если вы не найдете нужную информацию, обращайтесь к нам по адресу deitel@deitel.com.
Благодарности 41
ØØ
сообщения в блогах и обновления книги.
За инструкциями по загрузке обращайтесь к разделу «Приступая к работе» после предисловия.
Как связаться с авторами книги
Мы ждем ваши комментарии, критические замечания, исправления и предложения по улучшению книги. С вопросами, найденными опечатками и предложениями обращайтесь по адресу: deitel@deitel.com.
Или ищите нас в соцсетях:
ØØ
Facebook® (http://www.deitel.com/deitelfan)
ØØ
Twitter® (@deitel)
ØØ
LinkedIn® (http://linkedin.com/company/deitel-&-associates)
ØØ
YouTube® (http://youtube.com/DeitelTV)
Благодарности
Спасибо Барбаре Дейтел (Barbara Deitel) за долгие часы, проведенные в интернете за поиском информации по проекту. Нам повезло работать с группой профессионалов из издательства Pearson. Мы высоко ценим все усилия и 25-летнее наставничество нашего друга и профессионала Марка Л. Тауба (Mark L. Taub), вице-президента издательской группы Pearson IT Professional Group. Марк со своей группой работает над всеми нашими профессиональными книгами, видеоуроками и учебными руководствами из сервиса Safari (https://learning.oreilly.com/). Они также являются спонсорами наших обучающих семинаров в Safari. Джули Наил (Julie Nahil) руководила выпуском книги. Мы выбрали иллюстрацию для обложки, а дизайн обложки был разработан Чати Презертсит (Chuti Prasertshith).
Мы хотим выразить свою благодарность своим редакторам. Патрисия Байрон-Кимболл (Patricia Byron-Kimball) и Меган Джейкоби (Meghan Jacoby) подбирали научных рецензентов и руководили процессом рецензирования. Держась в рамках жесткого графика, редакторы рецензировали нашу работу, делились многочисленными замечаниями для повышения точности, полноты и актуальности материала.
42 Предисловие
Научные редакторы
Книга
Дэниел Чен (Daniel Chen), специалист по data science, Lander Analytics
Гаррет Дансик (Garrett Dancik), доцент кафедры компьютерных наук/биоинформатики, Университет Восточного Коннектикута
Праншу Гупта (Pranshu Gupta), доцент кафедры компьютерных наук, Университет Десалс
Дэвид Куп (David Koop), доцент кафедры data science, содиректор по учебным программам, Университет Массачусетса в Дартмуте
Рамон Мата-Толедо (Ramon Mata-Toledo), профессор кафедры компьютерных наук, Университет Джеймса Мэдисона
Шьямал Митра (Shyamal Mitra), старший преподаватель кафедры компьютерных наук, Техасский университет в Остине
Элисон Санчес (Alison Sanchez), доцент кафедры экономики, Университет Сан-Диего
Хосе Антонио Гонсалес Секо (José Antonio González Seco), IT-консультант
Джейми Уайтакер (Jamie Whitacre), независимый консультант в области data science
Элизабет Уикс (Elizabeth Wickes), преподаватель, школа информатики, Университет штата Иллинойс
Черновик
Ирен Бруно (Dr. Irene Bruno), доцент кафедры информатики и информационных технологий, Университет Джорджа Мэйсона
Ланс Брайант (Lance Bryant), доцент кафедры математики, Шиппенсбургский университет
Дэниел Чен (Daniel Chen), специалист по data science, Lander Analytics
Гаррет Дансик (Garrett Dancik), доцент кафедры компьютерных наук/биоинформатики, Университет Восточного Коннектикута
Марша Дэвис (Dr. Marsha Davis), декан математического факультета, Университет Восточного Коннектикута
Роланд ДеПратти (Roland DePratti), доцент кафедры компьютерных наук, Университет Восточного Коннектикута
Шьямал Митра (Shyamal Mitra), старший преподаватель, Техасский университет в Остине
Марк Поли (Dr. Mark Pauley), старший научный сотрудник на кафедре биоинформатики, школа междисциплинарной информатики, Университет штата Небраска в Омахе
Шон Рейли (Sean Raleigh), доцент кафедры математики, заведующий кафедрой data science, Вестминстерский колледж
Элисон Санчес (Alison Sanchez), доцент кафедры экономики, Университет Сан-Диего
Харви Сай (Dr. Harvey Siy), доцент кафедры компьютерных наук, информатики и информационных технологий, Университет штата Небраска в Омахе
Джейми Уайтакр (Jamie Whitacre), независимый консультант в области data science
Мы будем благодарны за ваши комментарии, критику, исправления и предложения по улучшению. Если у вас возникают какие-либо вопросы, обращайтесь по адресу deitel@deitel.com.
Об авторах 43
Добро пожаловать в увлекательный мир разработки Python с открытым кодом. Надеемся, вам понравится эта книга, посвященная разработке современных приложений Python с использованием IPython и Jupyter Notebook и затрагивающая вопросы data science, искусственного интеллекта, больших данных и облачных технологий. Желаем успеха!
Пол и Харви Дейтелы
Об авторах
Пол Дж. Дейтел (Paul J. Deitel), генеральный и технический директор компании Deitel & Associates, Inc., окончил Массачусетский технологический институт (MIT), более 38 лет занимается компьютерами. Пол — один из самых опытных преподавателей языков программирования, он ведет учебные курсы для разработчиков с 1992 года. Он провел сотни занятий по всему миру для корпоративных клиентов, включая Cisco, IBM, Siemens, Sun Microsystems (сейчас Oracle), Dell, Fidelity, NASA (Космический центр имени Кеннеди), Национальный центр прогнозирования сильных штормов, ракетный полигон Уайт-Сэндз, Rogue Wave Software, Boeing, Nortel Networks, Puma, iRobot и многих других. Пол и его соавтор, д-р Харви М. Дейтел, являются авторами всемирно известных бестселлеров — учебников по языкам программирования, предназначенных для начинающих и для профессионалов, а также видеокурсов.
Харви М. Дейтел (Dr. Harvey M. Deitel), председатель и главный стратег компании Deitel & Associates, Inc., имеет 58-летний опыт работы в области информационных технологий. Он получил степени бакалавра и магистра Массачусетского технологического института и степень доктора философии Бостонского университета — он изучал компьютерные технологии во всех этих программах до того, как в них появились отдельные программы компьютерных наук. Харви имеет огромный опыт преподавания в колледже и занимал должность председателя отделения информационных технологий Бостонского колледжа. В 1991 году вместе с сыном — Полом Дж. Дейтелом — он основал компанию Deitel & Associates, Inc. Харви с Полом написали несколько десятков книг и выпустили десятки видеокурсов LiveLessons. Написанные ими книги получили международное признание и были изданы на японском, немецком, русском, испанском, французском, польском, итальянском, упрощенном китайском, традиционном китайском, корейском, португальском, греческом, турецком языках и на языке урду. Дейтел провел сотни семинаров по программированию в крупных корпорациях, академических институтах, правительственных и военных организациях.
44 Предисловие
О компании Deitel® & Associates, Inc.
Компания Deitel & Associates, Inc., основанная Полом Дейтелом и Харви Дейтелом, получила международное признание в области авторских разработок и корпоративного обучения. Компания специализируется на языках программирования, объектных технологиях, интернете и веб-программировании. В число клиентов компании входят многие ведущие корпорации, правительственные агентства, военные и образовательные учреждения. Компания предоставляет учебные курсы, проводимые на территории клиента по всему миру для многих языков программирования и платформ.
Благодаря своему 44-летнему партнерскому сотрудничеству с Pearson/Prentice Hall, компания Deitel & Associates, Inc., публикует передовые учебники по программированию и профессиональные книги в печатном и электронном виде, видеокурсы LiveLessons (доступны для покупки на https://www.informit.com), Learning Paths и интерактивные обучающие семинары в режиме реального времени в службе Safari (https://learning.oreilly.com) и интерактивные мультимедийные курсы Revel™.
Чтобы связаться с компанией Deitel & Associates, Inc. и авторами или запросить план-проспект или предложение по обучению, напишите: deitel@deitel.com
Чтобы узнать больше о корпоративном обучении Дейтелов, посетите
http://www.deitel.com/training.
Желающие приобрести книги Дейтелов, могут сделать это на
https://www.amazon.com.
Крупные заказы корпораций, правительства, военных и академических учреждений следует размещать непосредственно на сайте Pearson. Для получения дополнительной информации посетите
https://www.informit.com/store/sales.aspx.
Приступая к работе
В этом разделе собрана информация, которую следует просмотреть перед чтением книги. Обновления будут публиковаться на сайте http://www.deitel.com.
Загрузка примеров кода
Файл examples.zip с кодом примеров книги можно загрузить на нашей веб-странице книги на сайте:
http://www.deitel.com
Щелкните на ссылке Download Examples, чтобы сохранить файл на вашем компьютере. Многие браузеры помещают загруженный файл в папку Downloads вашей учетной записи. Когда загрузка завершится, найдите файл в своей системе и распакуйте папку examples в папку Documents вашей учетной записи:
ØØ
Windows: C:\Users\YourAccount\Documents\examples
ØØ
macOS или Linux: ~/Documents/examples
В большинстве операционных систем имеется встроенная программа распаковки архивов. Также можно воспользоваться внешней программой-архиватором — например, 7-Zip (www.7-zip.org) или WinZip (www.winzip.com).
46 Приступая к работе
Структура папки examples
В этой книге приводятся примеры трех типов:
ØØ
отдельные фрагменты кода для интерактивной среды IPython;
ØØ
законченные приложения, называемые сценариями;
ØØ
документы Jupyter Notebook — удобной интерактивной среды для браузера, в которой можно писать и выполнять код, а также чередовать код с текстом, графикой и видео.
Все варианты продемонстрированы в примерах из раздела 1.5.
Каталог examples содержит одну вложенную папку для каждой главы. Этим папкам присвоены имена вида ch##, где ## — двузначный номер главы от 01 до 16 — например, ch01. Кроме глав 13, 15 и 16, папка каждой главы содержит следующие элементы:
ØØ
snippets_ipynb — папка с файлами Jupyter Notebook этой главы;
ØØ
snippets_py — папка с файлами с исходным кодом Python, в которых хранятся все представленные фрагменты кода, разделенные пустой строкой. Вы можете скопировать эти фрагменты в IPython или в созданные вами новые документы Jupyter Notebook;
ØØ
файлы сценариев и используемые ими файлы.
Глава 13 содержит одно приложение. Главы 15 и 16 объясняют, где найти нужные файлы в папках ch15 и ch16 соответственно.
Установка Anaconda
В книге используется дистрибутив Anaconda Python, отличающийся простотой установки. В него входит практически все необходимое для работы с примерами, в том числе:
ØØ
интерпретатор IPython;
ØØ
большинство библиотек Python и data science, используемых в книге;
ØØ
локальный сервер Jupyter Notebook для загрузки и выполнения документов;
Менеджеры пакетов 47
ØØ
другие программные пакеты, такие как Spyder IDE (Integrated Development Environment), — в книге используются только среды IPython и Jupyter Notebook.
Программу установки Python 3.x Anaconda для Windows, macOS и Linux можно загрузить по адресу:
https://www.anaconda.com/download/
Когда загрузка завершится, запустите программу установки и выполните инструкции на экране. Чтобы установленная копия Anaconda работала правильно, не перемещайте ее файлы после установки.
Обновление Anaconda
Затем проверьте актуальность установки Anaconda. Откройте окно командной строки в своей системе:
ØØ
В macOS откройте приложение Terminal из подкаталога Utilities в каталоге Applications.
ØØ
В Windows откройте командную строку Anaconda Prompt из меню Пуск. Когда вы делаете это для обновления Anaconda (как в данном случае) или для установки новых пакетов (см. ниже), выполните Anaconda Prompt с правами администратора: щелкните правой кнопкой мыши и выберите команду Запуск от имени администратора. (Если вы не можете найти команду Anaconda Prompt в меню Пуск, найдите ее при помощи поля поиска в нижней части экрана.)
ØØ
В Linux откройте терминал или командную оболочку своей системы (зависит от дистрибутива Linux).
В окне командной строки своей системы выполните следующие команды, чтобы обновить установленные пакеты Anaconda до последних версий:
conda update conda
conda update --all
Менеджеры пакетов
Приведенная выше команда conda запускает менеджер пакетов conda — один из двух основных менеджеров пакетов Python, используемых в книге (другой — pip). Пакеты содержат файлы, необходимые для установки отдельных
48 Приступая к работе
библиотек или инструментов Python. В книге conda будет использоваться для установки дополнительных пакетов, если только не окажется, что эти пакеты недоступны в conda; в этом случае будет использоваться pip. Некоторые разработчики предпочитают пользоваться исключительно pip, потому что эта программа в настоящее время поддерживает больше пакетов. Если у вас возникнут проблемы с установкой пакетов из conda, попробуйте использовать pip.
Установка программы статического анализа кода Prospector
Для анализа кода Python можно воспользоваться аналитической программой Prospector, которая проверяет ваш код на наличие типичных ошибок и помогает улучшить его. Чтобы установить программу Prospector и используемые ею библиотеки Python, выполните следующую команду в окне командной строки:
pip install prospector
Установка jupyter-matplotlib
В книге для построения некоторых анимаций используется библиотека визуализации Matplotlib. Чтобы использовать анимации в документах Jupyter Notebook, необходимо установить программу ipympl. В терминале в командной строке Anaconda или в оболочке, открытой ранее, последовательно выполните следующие команды1:
conda install -c conda-forge ipympl
conda install nodejs
jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install jupyter-matplotlib
Установка других пакетов
Дистрибутив Anaconda включает приблизительно 300 популярных пакетов Python и data science, включая NumPy, Matplotlib, pandas, Regex, BeautifulSoup, requests, Bokeh, SciPy, SciKit-Learn, Seaborn, Spacy, sqlite, statsmodels и многие другие. Количество дополнительных пакетов, которые вам придется уста1
https://github.com/matplotlib/jupyter-matplotlib.
Различия в выводе программ 49
навливать в книге, будет небольшим, и мы будем приводить инструкции по установке в таких местах. В документации новых пакетов объясняется, как их следует устанавливать.
Получение учетной записи разработчика Twitter
Если вы намереваетесь использовать главу «Глубокий анализ данных Twitter» и все примеры на базе Twitter в последующих главах, подайте заявку на получение учетной записи разработчика Twitter. Сейчас Twitter требует регистрации для получения доступа к их API. Чтобы подать заявку на создание учетной записи разработчика, заполните и отправьте форму по адресу:
https://developer.twitter.com/en/apply-for-access
Twitter проверяет каждую заявку. На момент написания книги заявки на создание личных учетных записей разработчиков утверждались практически немедленно, а на утверждение заявок от компаний требовалось от нескольких дней до нескольких недель. Успешное утверждение не гарантировано.
Необходимость подключения к интернету в некоторых главах
При использовании этой книги вам может понадобиться подключение к интернету для установки дополнительных библиотек. В некоторых главах вы будете регистрироваться для создания учетных записей в облачных сервисах (в основном для использования их бесплатных уровней). Некоторые сервисы требуют кредитных карт для подтверждения личности. В отдельных случаях будут использоваться платные сервисы. Тогда мы воспользуемся кредитом, который предоставляется фирмой-поставщиком, так что вы сможете опробовать сервис без каких-либо затрат. Предупреждение: некоторые облачные сервисы начинают выставлять счета после их настройки. Когда вы закончите анализ примеров с использованием таких сервисов, без промедления удалите выделенные ресурсы.
Различия в выводе программ
При выполнении наших примеров вы можете заметить некоторые различия между приведенными и вашими результатами:
50 Приступая к работе
ØØ
Из-за различий в выполнении вычислений в формате с плавающей точкой (например, –123.45, 7.5 или 0.0236937) в разных операционных системах вы можете заметить незначительные различия в выводе, особенно в младших разрядах дробной части.
ØØ
Когда мы приводим выходные данные, отображаемые в разных окнах, мы обрезаем границы окон для экономии места.
Получение ответов на вопросы
На форумах в интернете вы сможете общаться с другими программистами Python и получать ответы на свои вопросы. Некоторые популярные форумы по тематике Python и программирования в целом:
ØØ
python-forum.io
ØØ
StackOverflow.com
ØØ
https://www.dreamincode.net/forums/forum/29-python/
Кроме того, многие фирмы-разработчики предоставляют форумы, посвященные их инструментам и библиотекам. Управление большинством упоминаемых в книге библиотек и их сопровождение осуществляется на github.com. Некоторые разработчики, занимающиеся сопровождением библиотек, предоставляют поддержку на вкладке Issues страницы GitHub библиотеки. Если вам не удастся найти ответ на свой вопрос в интернете, обращайтесь к веб-странице книги на сайте1
http://www.deitel.com
Теперь все готово к чтению книги. Надеемся, она вам понравится!
1 В настоящее время наш сайт проходит глобальную реконструкцию. Если вы не найдете какую-то необходимую информацию, напишите нам по адресу deitel@deitel.com.
1
Компьютеры и Python
В этой главе…
•• Наиболее интересные тенденции в области современных вычислительных
технологий.
•• Краткий обзор основ объектно-ориентированного программирования.
•• Сильные стороны Python.
•• Знакомство с важнейшими библиотеками Python и data science, исполь-
зуемыми в этой книге.
•• Интерактивный режим интерпретатора IPython и выполнение
кода Python.
•• Выполнение сценария Python для анимации гистограммы.
•• Создание и тестирование веб-оболочки Jupyter
Notebook для выполнения кода Python.
•• Большие данные: с каждым днем еще больше.
•• Анализ больших данных на примере популярно-
го мобильного навигационного приложения.
•• Искусственный интеллект: пересечение ком-
пьютерной теории и data science.
52 Глава 1. Компьютеры и Python
1.1. Введение
Знакомьтесь: Python — один из наиболее широко используемых языков программирования, а согласно индексу PYPL (Popularity of Programming Languages) — самый популярный в мире1.
В этом разделе представлены терминология и концепции, закладывающие основу для программирования на языке Python, которому будут посвящены главы 2–10, и для практических примеров из области больших данных, искусственного интеллекта и облачных технологий, описываемых в главах 11–16.
Читатели узнают, почему язык Python стал таким популярным, познакомятся со стандартной библиотекой Python и различными библиотеками data science, благодаря которым не придется заново «изобретать велосипед». Эти библиотеки используются для создания объектов. С их помощью можно решать серьезные задачи при умеренном объеме программного кода.
Затем будут рассмотрены три примера, демонстрирующие различные способы выполнения кода Python:
ØØ
В первом примере вы будете выполнять команды Python в оболочке IPython в интерактивном режиме и сразу же видеть результаты.
ØØ
Во втором примере мы выполним серьезное приложение Python, отображающее анимированную гистограмму результатов бросков шестигранного кубика. Это позволит увидеть «закон больших чисел» в действии. Забегая чуть вперед, отметим, что в главе 6 это же приложение будет построено с использованием библиотеки визуализации Matplotlib.
ØØ
В последнем примере будет продемонстрирована работа с документами Jupyter Notebook с использованием JupyterLab — интерактивной оболочки на базе веб-браузера, обеспечивающей удобство в процессе формирования и выполнения инструкции Python. К слову, в документы Jupyter Notebook можно включать текст, изображения, звуковые данные, видеоролики, анимации и программный код.
В прошлом большинство компьютерных приложений выполнялось на автономных (то есть не объединенных в сеть) компьютерах. Современные приложения могут создаваться с расчетом на взаимодействие с миллиардами компьютеров по всему мире через интернет. Мы расскажем об облачных
1 https://pypl.github.io/PYPL.html (на январь 2019 г.).
1.2. Основы объектных технологий 53
технологиях и концепции IoT (Internet of Things), закладывающих основу для современных приложений (подробнее об этом в главах 11–16).
Вы, кроме того, узнаете, насколько велики большие данные и как они стремительно становятся еще больше. Затем будет представлен вариант анализа больших данных на примере мобильного навигационного приложения Waze. Это приложение многие современные технологии использует для построения динамических инструкций, помогающих быстро и безопасно добраться до конечной точки маршрута. При описании этих технологий будет указано, где многие из них используются в этой книге. Глава завершается разделом «Введение в data science», посвященным важнейшей области пересечения компьютерной теории и дисциплины data science — искусственному интеллекту.
1.2. Основы объектных технологий
Потребность в новых, более мощных программах стремительно растет, поэтому очень важно, чтобы программные продукты строились по возможности быстро, корректно и эффективно. Объекты (точнее, классы, на основе которых строятся объекты), по сути, представляют собой программные компоненты, пригодные для повторного использования. Объектом может быть что угодно: дата, время, аудио, видео, автомобиль, человек и т. д. Практически каждое существительное может быть адекватным образом представлено программным объектом, обладающим атрибутами (например, имя, цвет и размер) и способностями к выполнению определенных действий (например, вычисление, перемещение и обмен данными). Разработчики программ используют модульную структуру и объектно-ориентированную методологию проектирования с большей эффективностью, чем некогда популярные методологии вроде «структурного программирования». Объектно-ориентированные программы зачастую более понятны, их проще исправлять и модифицировать.
Автомобиль как объект
Чтобы лучше понять суть объектов и их внутреннее устройство, воспользуемся простой аналогией. Представьте, что вы ведете автомобиль и нажимаете педаль газа, чтобы набрать скорость. Но что должно произойти до того, как вы получите возможность водить автомобиль? Прежде всего автомобиль нужно изготовить. Изготовление любого автомобиля начинается с инженерных чертежей (калек), подробно описывающих устройство автомобиля. На этих чертежах даже показано устройство педали акселератора. За этой педа54
Download 0,77 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   20




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish