Крупномасштабное машинное обучение вместе с Python
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Перевод:
Логунов А. В.
Год издания: 2018
Кол-во страниц: 358
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-97060-506-6
Артикул: 812970.01.99
Доступ онлайн
В корзину
Главная задача настоящей книги состоит в том, чтобы предоставить способы применения мощных методов машинного обучения с открытым исходным кодом в крупномасштабных проектах без привлечения дорогостоящих корпоративных решений или больших вычислительных кластеров. Описаны масштабируемое обучение в Scikit-learn, нейронные сети и глубокое обучение с использованием Theano, H2O и TensorFlow. Рассмотрены классификационные и регрессионные деревья, а также обучение без учителя. Охвачены эффективные методы машинного обучения в вычислительной среде MapReduce на платформах Hadoop и Spark на языке Python.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Бастиан Шарден, Лука Массарон, Альберто Боскетти Крупномасштабное машинное обучение вместе с Python
Bastiaan Sjardin, Luca Massaron, Alberto Boschetti Large Scale Machine Learning with Python Learn to build powerful machine learning models quickly and deploy large-scale predictive applications BIRMINGHAM – MUMBAI
Бастиан Шарден, Лука Массарон, Альберто Боскетти Крупномасштабное машинное обучение вместе с Python Учитесь быстро создавать мощные модели машинного обучения и развертывать крупномасштабные приложения прогнозирования Москва, 2018
УДК 004.438Python:004.6 ББК 32.973.22 C33 Шарден Б., Массарон Л., Боскетти А. Ш25 Крупномасштабное машинное обучение вместе с Python / пер. с анг. А. В. Логунова. – М.: ДМК Пресс, 2018. – 358 с.: ил. ISBN 978-5-97060-506-6 Главная задача настоящей книги состоит в том, чтобы предоставить способы при- менения мощных методов машинного обучения с открытым исходным кодом в крупномасштабных проектах без привлечения дорогостоящих корпоративных решений или больших вычислительных кластеров. Описаны масштабируемое обучение в Scikit-learn, нейронные сети и глубокое обучение с использованием Theano, H2O и TensorFlow. Рассмотрены классификационные и регрессионные деревья, а также обучение без учителя. Охвачены эффективные методы машинного обучения в вычислительной среде MapReduce на платформах Hadoop и Spark на языке Python. УДК 004.438Python:004.6 ББК 32.973.22 First published in the English language under the title 'Large Scale Machine Learning with Python – (9781785887215). Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-78588-721-5 (анг.) Copyright © 2016 Packt Publishing ISBN 978-5-97060-506-6 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2018
Содержание Об авторах .........................................................................................................................9 О рецензентах .................................................................................................................10 Предисловие ...................................................................................................................11 Глава 1. Первые шаги к масштабируемости .............................................................20 Подробное объяснение термина масштабируемости ....................................................21 Приведение крупномасштабных примеров ...............................................................23 Введение в язык Python ...............................................................................................24 Вертикальное масштабирование средствами Python ................................................25 Горизонтальное масштабирование средствами Python ............................................26 Python для крупномасштабного машинного обучения .................................................27 Выбор между Python 2 и Python 3 ...............................................................................27 Инсталляция среды Python ..........................................................................................28 Пошаговая установка ...................................................................................................28 Установка библиотек ....................................................................................................29 Способы обновления библиотек .................................................................................31 Научные дистрибутивы ...............................................................................................32 Введение в Jupyter ........................................................................................................33 Библиотеки Python ...........................................................................................................37 NumPy ............................................................................................................................37 SciPy ...............................................................................................................................37 Pandas ............................................................................................................................37 Scikit-learn .....................................................................................................................38 Резюме ...............................................................................................................................44 Глава 2. Масштабируемое обучение в Scikit-learn ..................................................46 Внеядерное обучение .......................................................................................................47 Подвыборка как приемлемый вариант ......................................................................48 Оптимизация по одному прецеденту за раз .............................................................48 Создание системы внеядерного обучения ................................................................50 Потоковая передача данных из источников ...................................................................51 Наборы данных для реальных дел ..............................................................................51 Первый пример – потоковая передача набора данных Bike-sharing ........................54 Использование инструментов ввода-вывода библиотеки pandas ............................56 Работа с базами данных ...............................................................................................57 Особое внимание упорядочению прецедентов .........................................................61 Стохастическое обучение .................................................................................................63 Пакетный градиентный спуск .....................................................................................64 Стохастический градиентный спуск ...........................................................................67 Реализация алгоритма SGD в библиотеке Scikit-learn ..............................................68 Определение параметров обучения алгоритма SGD .................................................70 Управление признаками на потоках данных .................................................................72 Описание целевой переменной ..................................................................................76
Содержание Хэширование признаков .............................................................................................79 Другие элементарные преобразования ......................................................................82 Тестирование и перекрестная проверка в потоке .....................................................83 Применение алгоритма SGD в деле ............................................................................84 Резюме ...............................................................................................................................88 Глава 3. Быстрообучающиеся реализации машин SVM .........................................89 Наборы данных для самостоятельного экспериментирования ...................................90 Набор данных Bike-sharing ..........................................................................................90 Набор данных Covertype ..............................................................................................91 Машины опорных векторов .............................................................................................91 Кусочно-линейная функция потерь и ее варианты ...................................................97 Объяснение реализации алгоритма SVM в Scikit-learn .............................................98 Поиск нелинейных SVM с привлечением подвыборки ...........................................101 Реализация SVM в крупном масштабе на основе SGD .............................................104 Отбор признаков посредством регуляризации ............................................................112 Добавление нелинейности в алгоритм SGD .................................................................114 Испытание явных высокоразмерных отображений ................................................115 Доводка гиперпараметров .............................................................................................117 Другие альтернативы быстро обучающихся реализаций SVM ...............................121 Резюме .............................................................................................................................133 Глава 4. Искусственные нейронные сети и глубокое обучение ..........................134 Архитектура нейронной сети ........................................................................................135 Чему и как нейронные сети обучаются ....................................................................144 Выбор правильной архитектуры ...............................................................................148 Нейронные сети в действии ......................................................................................149 Параллелизация для библиотеки sknn ......................................................................150 Нейронные сети и регуляризация .................................................................................151 Нейронные сети и гиперпараметрическая оптимизация ...........................................153 Нейронные сети и границы решения ...........................................................................154 Глубокое обучение в крупном масштабе с H2O ............................................................157 Крупномасштабное глубокое обучение с H2O .........................................................158 Сеточный поиск в H2O ...............................................................................................161 Глубокое обучение и предтренировка без учителя ......................................................162 Глубокое обучение с theanets .........................................................................................162 Автокодировщики и обучение без учителя ..................................................................164 Автокодировщик ........................................................................................................164 Резюме .............................................................................................................................168 Глава 5. Глубокое обучение с библиотекой TensorFlow ........................................170 Инсталляция TensorFlow ................................................................................................172 Операции TensorFlow .................................................................................................172 Машинное обучение в TensorFlow посредством SkFlow ..............................................177 Глубокое обучение с большими файлами – инкрементное обучение ....................183 Инсталляция библиотеки Keras и платформа TensorFlow ...........................................186
Содержание 7 Сверточные нейронные сети в TensorFlow посредством Keras ...................................190 Сверточный слой ........................................................................................................192 Объединяющий слой ..................................................................................................193 Полносвязный слой ....................................................................................................194 CNN-сети с подходом на основе инкрементной тренировки .....................................195 Вычисления на GPU ........................................................................................................196 Резюме .............................................................................................................................199 Глава 6. Классификационные и регрессионные деревья в крупном масштабе ....................................................................................................200 Агрегация бутстрапированных выборок ......................................................................203 Случайный лес и экстремально рандомизированный лес ..........................................204 Быстрая параметрическая оптимизация посредством рандомизированного поиска ..............................................................................................................................208 Экстремально рандомизированные деревья и большие наборы данных ..............210 Алгоритм CART и бустинг ..............................................................................................214 Машины градиентного бустинга ...............................................................................214 Алгоритм XGBoost ..........................................................................................................221 Регрессия на основе XGBoost .....................................................................................224 Потоковая передача больших наборов данных посредством XGBoost ..................227 Персистентность модели XGBoost.............................................................................228 Внеядерный алгоритм CART в среде H2O .....................................................................229 Случайный лес и сеточный поиск в H2O ..................................................................229 Стохастический градиентный бустинг и сеточный поиск в H2O ...........................231 Резюме .............................................................................................................................233 Глава 7. Обучение без учителя в крупном масштабе ............................................235 Методы машинного обучения без учителя ...................................................................235 Разложение признаков – PCA ........................................................................................236 Алгоритм PCA в среде H2O ........................................................................................246 Кластеризация – алгоритм K-средних ..........................................................................247 Методы инициализации ............................................................................................250 Допущения алгоритма K-средних .............................................................................251 Подбор оптимальной величины K ............................................................................253 Масштабирование алгоритма K-средних – мини-пакет .........................................257 Алгоритм K-средних в среде H2O ..................................................................................261 Алгоритм LDA .................................................................................................................263 Масштабирование алгоритма LDA – оперативная память, CPU и машины ...........271 Резюме .............................................................................................................................272 Глава 8. Распределенные среды – Hadoop и Spark ...............................................273 От автономной машины к набору узлов .......................................................................273 Зачем нужна распределенная платформа? ..............................................................275 Настройка виртуальной машины ..................................................................................276 Виртуализатор VirtualBox ..........................................................................................277 Конфигуратор Vagrant ................................................................................................279
Содержание Использование виртуальной машины ......................................................................279 Экосистема Hadoop .........................................................................................................281 Архитектура ................................................................................................................281 Распределенная файловая система HDFS .................................................................282 Вычислительная парадигма MapReduce ...................................................................289 Менеджер ресурсов YARN ..........................................................................................298 Платформа Spark.............................................................................................................299 Библиотека pySpark ....................................................................................................299 Резюме .............................................................................................................................309 Глава 9. Практическое машинное обучение в среде Spark .................................310 Настройка виртуальной машины для данной главы ...................................................310 Распространение переменных по всем узлам кластера ..............................................311 Широковещательные переменные только для чтения ............................................311 Аккумуляторные переменные только для записи ...................................................313 Широковещательные и аккумуляторные переменные – пример ...........................314 Предобработка данных в среде Spark ............................................................................316 Файлы JSON и объекты DataFrame платформы Spark ..............................................317 Работа с пропущенными данными ...........................................................................319 Группирование и создание таблиц в оперативной памяти ....................................320 Запись предобработанного объекта DataFrame или RDD-набора на диск .............322 Работа с объектами DataFrame .................................................................................323 Машинное обучение с платформой Spark ....................................................................326 Платформа Spark на наборе данных KDD99 .............................................................326 Чтение набора данных ...............................................................................................327 Конструирование признаков .....................................................................................329 Тренировка ученика ...................................................................................................334 Оценка результативности ученика ...........................................................................335 Возможности конвейера машинного обучения .......................................................336 Ручная доводка ...........................................................................................................338 Перекрестная проверка .............................................................................................340 Заключительная очистка ...........................................................................................342 Резюме .............................................................................................................................342 Приложение. Введение в графические процессоры и платформа Theano ......344 Вычисления на GPU ........................................................................................................344 Платформа Theano – параллельные вычисления на GPU ............................................346 Установка платформы Theano .......................................................................................347 Предметный указатель ...............................................................................................350
Об авторах Бастиан Шарден – исследователь-аналитик и создатель с опытом работы в области искусственного интеллекта и математики. Имеет степень магистра по когнити вистике, полученную им в университете Лейдена вместе с очными курсами в Массачусетском технологическом институте (MIT). В течение прошедших 5 лет он работал над широким спектром проектов в области науки о данных и искусственного интеллекта. Часто принимает участие как непостоянный член преподавательского состава в онлайн-курсах Coursera в области анализа социальных сетей Мичиганского университета и практического машинного обучения Университета Джонса Хопкинса. Его предпочтительными языками программирования являются Python и R. В настоящее время является соучредителем компании Quandbee (http://www.quandbee.com/), предлагающей масштабируемые приложения машинного обучения и искусственного интеллекта. Лука Массарон – исследователь-аналитик и директор по анализу рынка, специализирующийся на многомерном статистическом анализе, машинном обучении и потребительском понимании, с более чем десятилетним опытом в решении реаль ных задач и генерировании стоимости для заинтересованных сторон путем применения логического обоснования, статистики, анализа данных и алгоритмов. Являясь первопроходцем в сфере исследования веб-аудитории в Италии, сегодня входит в лучшую десятку аналитиков по версии профессионального аналитического веб-сайта Kaggle. Всегда очень увлекался всем, что связано с данными и их анализом, а также демонстрацией потенциала, управляемого данными обнаружения знаний для экспертов и неспециалистов. Отдавая предпочтение простоте над ненужной сложностью, он полагает, что в науке о данных можно достичь многого, всего лишь руководствуясь основами. Хотел бы благодарить Юкико и Амелию за их постоянную поддержку, помощь и любвеобильное терпение. Альберто Боскетти – исследователь-аналитик с профессиональным опытом в области обработки сигналов и математической статистики. Имеет научную степень доктора наук по инженерному делу в области телекоммуникаций, в настоящее время живет и работает в Лондоне. В своих рабочих проектах он занимается решением сложных задач, которые включают в себя широкий круг областей – от обработки естественного языка (NLP) вплоть до машинного обучения и распределенной обработки. Очень увлечен своей работой и всегда пытается оставаться в курсе технологических новинок в области науки о данных, участвуя во встречах профессио налов, конференциях и других событиях.
О рецензентах Олег Окунь – эксперт по машинному обучению, является автором/редактором четырех книг, многочисленных журнальных статей и докладов на конференциях. Работает в отрасли уже более четверти века, проработав в высшей школе и промышленности на своей родине в Белоруссии и за границей (в Финляндии, Швеции и Германии). Его опыт работы включает анализ цифровых образов документов, биометрию цифрового отпечатка, биоинформатику, онлайновую и внесетевую маркетинговую аналитику и аналитику рейтинга кредитоспособности. Интересуется всеми аспектами распределенного машинного обучения и Интернетом вещей. Олег в настоящее время живет и работает в Гамбурге, Германия, и собирается приступить к новой работе в качестве главного архитектора интеллектуальных систем. Его предпочтительными языками программирования являются Python, R и Scala. Хотел бы выразить свою самую глубокую благодарность моим родителям за все, что они для меня сделали. Кай Лонденберг – исследователь-аналитик и эксперт в области больших данных с многолетним профессиональным опытом. В настоящее время работает исследователем- аналитиком в компании Volkswagen Data Lab. До этого имел удовольствие работать ведущим исследователем-аналитиком в компании Searchmetrics, где Лука Массарон был членом его команды. Кай любит работать с передовыми технологиями, и, являясь прагматично настроенным практиком машинного обучения и действую щим разработчиком программного обеспечения, он любит всегда оставаться в курсе последних технологических и научных достижений в области машинного обучения, ИИ и смежных областях. Его можно найти в социальной сети LinkedIn по адресу https://www.linkedin.com/in/kailondenberg.
Предисловие «Самое приятное в мозге – то, что можно узнать, что невежество вытесняется знанием и что крохотные частички знания постепенно образуют солидные пирамиды». – Дуглас Хофштадтер Машинное обучение часто называют подобластью искусственного интеллекта, которая реально работает. Его цель состоит в том, чтобы, основываясь на существующем подмножестве данных (тренировочном наборе), с максимально возможной точностью найти функцию для предсказания исходов подмножества ранее не наблюдавшихся данных (тестового набора). Это происходит либо в форме меток и классов (задачи классификации), либо в форме непрерывного значения (задачи регрессии). Материальные примеры машинного обучения в реальных приложениях простираются от предсказания будущих курсов акций до идентификации половой принадлежности автора, исходя из серии документов. В этой книге читатель получит объяснение самых важных принципов работы машинного обучения, а также методов, подходящих для обработки крупных наборов данных, благодаря практическим примерам на языке Python. Мы рассмотрим обучение с учителем (классификация и регрессия) и обучение без учителя (в т. ч. анализ главных компонент, кластеризацию данных и тематическое моделирование), которые оказались применимыми к большим наборам данных. Работающие в области ИТ крупные корпорации, такие как Google, Facebook и Uber, подняли нешуточный ажиотаж, утверждая, что они успешно применили подобного рода методы машинного обучения в крупном масштабе. С появлением и распространением больших данных спрос на масштабируемые решения в области машинного обучения рос экспоненциально, и множество других компаний и отдельных специалистов устремилось на поиски зрелых плодов скрытых корреляций в больших наборах данных. К сожалению, большинство обучающихся алгоритмов не очень хорошо масштабируется, перегружая центральные процессоры и память настольного компьютера или большого вычислительного кластера. В нынешние времена, несмотря на то что большие данные преодолели пик ажиотажа, масштабируемых решений для машинного обучения до сих пор не так уж и много. Откровенно говоря, нам по-прежнему приходится обходить немало узких мест даже с наборами данных, которые едва ли можно классифицировать как большие данные (речь идет о наборах данных объемом до 2 Гб или меньше). Главная задача настоящей книги состоит в том, чтобы предоставить способы (иногда нестандартные) для применения самых мощных методов машинного обучения с открытым исходным кодом в более крупном масштабе без привлечения дорогостоящих корпоративных решений или больших вычислительных кластеров. На протяжении всей книги мы будем использовать Python и некоторые другие легкодоступные решения, которые хорошо интегрируются в масштабируемых конвейерах машинного обучения. Чтение книги станет путешествием, которое переопределит все то,
Предисловие что вы знали о машинном обучении, позволив вам сделать значительный рывок вперед в анализе по-настоящему больших данных. О чем эта книга рассказывает Глава 1 «Первые шаги на пути к масштабируемости» ставит задачу масштабируемого машинного обучения с правильной перспективой и знакомит с инструментами, которые мы будем использовать в этой книге. Глава 2 «Масштабируемое обучение в Scikit-learn» обсуждает тему стратегии стохастического градиентного спуска с ограничением потребления оперативной памяти; этот прием основывается на теме внеядерного обучения. Мы также охватим технические приемы подготовки данных, включая хэширование признаков, способные справляться с самыми разнообразными данными. Глава 3 «Быстрообучающиеся реализации машин SVM» посвящена потоковым алгоритмам, которые способны обнаруживать нелинейности в форме машин опорных векторов. Мы представим альтернативы программной библиотеке Scikit- learn, в частности программы LIBLINEAR и Vowpal Wabbit, которые, несмотря на то что выполняются как команды внешней оболочки, с легкостью обертываться в сценарии Python и ими управляются. Глава 4 «Нейронные сети и глубокое обучение» охватывает полезную методику применения глубоких нейронных сетей в платформе Theano и крупномасштабные приложения на основе платформы H2O. Хотя эта тема сегодня является актуальной, их успешное применение может представлять серьезную трудность, уже не говоря о предложении масштабируемых решений. Мы также обратимся к предварительной тренировке без учителя с автокодировщиками на основе библиотеки theanets. Глава 5 «Глубокое обучение с библиотекой TensorFlow» охватывает интересную методику глубокого обучения нейронных сетей и онлайновые методы. Хотя платформа TensorFlow находится в стадии становления, она предоставляет изящные решения для машинного обучения. Мы также воспользуемся возможностями библиотеки Keras по работе со сверточными нейронными сетями в среде TensorFlow. Глава 6 «Классификационные и регрессионные деревья в крупном масштабе» посвящена объяснению масштабируемых решений с использованием алгоритмов случайного леса, градиентного бустинга и экстремального градиентного бустин- га XGboost. Алгоритм машинного обучения CART, аббревиатура для классификационных и регрессионных деревьев, обычно применяется в рамках ансамблевых методов. Мы также предоставим примеры крупномасштабного приложения в среде H2O. Глава 7 «Обучение без учителя в крупном масштабе» вплотную посвящена обучению без учителя, а именно будут рассмотрены алгоритмы PCA, кластерного анализа и тематического моделирования с использованием соответствующего подхода, позволяющего масштабировать их вертикально. Глава 8 «Распределенные среды – Hadoop и Spark» научит настраивать систему Spark в среде виртуальной машины с переходом от одиночной машины к парадигме вычислительной сети. Поскольку Python способен с легкостью связывать индивидуальные наработки и подключать их к кластеру машин, привлечение возможностей кластера Hadoop становится простым делом.
Для кого эта книга 13 Глава 9 «Практическое машинное обучение на платформе Spark» посвящена непосредственной работе с платформой Spark и обучает необходимым основам, для того чтобы начать напрямую управлять данными и создавать прогнозные модели на больших наборах данных. Приложение «Введение в графические процессоры и библиотеку Theano» коснется основ работы в среде Theano и вычислений на GPU. Это пособие поможет установить и подготовить свою собственную среду для использования Theano на GPU, если, конечно, располагаемая система это позволяет сделать. чтО требуется для этОй книги Выполнение примеров кода, прилагаемых к данной книге, требует установки Python 2.7 или старших версий в Mac OS, Linux или Microsoft Windows. В примерах по всей книге будут часто использоваться важные программные библиотеки Python для научных и статистических вычислений, в частности SciPy, NumPy, Scikit-learn, StatsModels и реже matplotlib и pandas. Мы также задействуем приложение для внеядерных облачных вычислений под названием H2O. Эта книга в значительной мере зависит от интерактивной среды программирования Jupyter и ее так называемых блокнотов, или записных книжек, приводимых в действие ядром Python. Для этой книги мы воспользуемся ее последней версией 4.1 (на момент публикации перевода – 5.0). Первая глава предоставит все пошаговые инструкции и некоторые полезные советы по настройке среды Python, упомянутых выше рабочих программных библиотек и всего необходимого инструментария. для кОгО эта книга Эта книга предназначена для начинающих и действующих практиков в области науки о данных, разработчиков и всех тех, кто намеревается работать с большими и сложными наборами данных. Мы постарались сделать эту книгу максимально доступной для самой широкой аудитории. И все же, учитывая, что темы в этой книге достаточно продвинутые, читателям рекомендуется знать основные понятия из области машинного обучения, в частности классификацию и регрессию, функции минимизации ошибки и перекрестную проверку, однако это условие не является обязательным. Мы также предполагаем, что читатель обладает некоторым опытом программирования на Python, работы с блокнотами Jupyter и выполнением команд из командной строки, а также познаниями в математике на разумном уровне, чтобы усвоить концепции, лежащие в основе разных больших решений, которые мы здесь предлагаем. Текст написан в стиле, который поймут программисты на других языках (R, Java и MATLAB). В идеальном случае он очень подходит для исследователя- аналитика (но не ограничен лишь им), знакомого с машинным обучением и заинтересованного в мобилизации возможностей языка Python, в отличие от других языков, таких как R или MATLAB, из-за его широких возможностей выполнять вычислительные задачи, работать с оперативной памятью и выполнять ввод-вывод данных.
Предисловие услОвные ОбОзначения В этой книге вы найдете несколько текстовых стилей, которые выделяют различные виды информации. Вот некоторые примеры этих стилей и объяснение их значения. Ключевые слова в тексте, имена таблиц баз данных, имена папок, имена файлов, расширения файлов, пути файловой системы, фиктивные URL, ввод данных пользователем и дескрипторы Twitter показаны следующим образом: «Во время обследования линейной модели сначала проверьте атрибут coef_». Фрагмент исходного кода оформляется следующим образом: from sklearn import datasets iris = datasets.load_iris() Поскольку в большинстве примеров мы будем использовать блокноты Jupyter, фрагменты исходного кода будут оформляться в соответствии с тем, как он выглядит в ячейках блокнотов: входные данные будут всегда помечены как In:, а выходные данные – часто как Out:. На компьютере требуется только ввести исходный код после In: и проверить, соответствуют ли результаты содержимому Out:: In: clf.fit(X, y) Out: SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0, kernel='rbf', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False) Когда команда предназначена для выполнения в командной строке терминала, такая команда будет предваряться префиксом $>, в противном случае, если она предназначена для интепретатора Python REPL, ей будет предшествовать приглашение >>>: $ python >>> import sys >>> print sys.version_info Новые термины и важные слова показаны полужирным шрифтом. Слова, которые выводятся на экран, например в меню или диалоговых окнах, выглядят в тексте следующим образом: «Как правило, необходимо просто ввести в ячейки после In: исходный код и его выполнить». Предупреждения или важные примечания появляются в этом поле. Подсказки и приемы появляются тут. Дополнения к тексту оригинала книги. Отзывы и пОжелания Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об этой книге – что понравилось или, может быть, не понравилось. Отзывы важны для нас, чтобы выпускать книги, которые будут для вас максимально полезны.
Доступ онлайн
В корзину