- Артикул:00-01044878
- Автор: Уэс Маккинли
- ISBN: 978-5-97060-315-4
- Обложка: Твердая обложка
- Издательство: ДМК пресс (все книги издательства)
- Город: Москва
- Страниц: 482
- Формат: 70x100 1/16
- Год: 2015
- Вес: 1355 г
- Серия: Бестселлеры O’Reilly (все книги серии)
Книгу можно рассматривать как современное практическое введение в разработку научных приложений на Python, ориентированных на обработку данных. Описаны те части языка Python и библиотеки для него, которые необходимы для эффективного решения широкого круга аналитических задач интерактивная оболочка IPython, библиотеки NumPy и pandas, библиотека для визуализации данных matplotlib и др.
Издание идеально подойдет как аналитикам, только начинающим осваивать обработку данных, так и опытным программистам на Python, еще не знакомым с научными приложениями.
Оглавление
Предисловие
Графические выделения
Глава 1. Предварительные сведения
О чем эта книга?
Почему именно Python?
Python как клей
Решение проблемы «двух языков»
Недостатки Python
Необходимые библиотеки для Python
NumPy
pandas
matplotlib
IPython
SciPy
Установка и настройка
Windows
Apple OS X
GNU/Linux
Python 2 и Python 3
Интегрированные среды разработки (IDE)
Сообщество и конференции
Структура книги
Примеры кода
Данные для примеров
Соглашения об импорте
Жаргон
Благодарности
Глава 2. Первые примеры
Набор данных 1.usa.gov с сайта bit.ly
Подсчет часовых поясов на чистом Python
Подсчет часовых поясов с помощью pandas
Набор данных MovieLens 1M
Измерение несогласия в оценках
Имена, которые давали детям в США за период с 1880 по 2010 год
Анализ тенденций в выборе имен
Выводы и перспективы
Глава 3. IPython: интерактивные вычисления и среда разработки
Основы IPython
Завершение по нажатию клавиши Tab
Интроспекция
Команда %run
Исполнение кода из буфера обмена
Комбинации клавиш
Исключения и обратная трассировка
Магические команды
Графическая консоль на базе Qt
Интеграция с matplotlib и режим pylab
История команд
Поиск в истории команд и повторное выполнение
Входные и выходные переменные
Протоколирование ввода-вывода
Взаимодействие с операционной системой
Команды оболочки и псевдонимы
Система закладок на каталоги
Средства разработки программ
Интерактивный отладчик
Хронометраж программы: %time и %timeit
Простейшее профилирование: %prun и %run -p
Построчное профилирование функции
HTML-блокнот в IPython
Советы по продуктивной разработке кода с использованием IPython
Перезагрузка зависимостей модуля
Советы по проектированию программ
Дополнительные возможности IPython
Делайте классы дружественными к IPython
Профили и конфигурирование
Благодарности
Глава 4. Основы NumPy: массивы и векторные вычисления
NumPyndarray: объект многомерного массива
Создание ndarray
Тип данных для ndarray
Операции между массивами и скалярами
Индексирование и вырезание
Булево индексирование
Прихотливое индексирование
Транспонирование массивов и перестановка осей
Универсальные функции: быстрые поэлементные операции над массивами
Обработка данных с применением массивов
Запись логических условий в виде операций с массивами
Математические и статистические операции
Методы булевых массивов
Сортировка
Устранение дубликатов и другие теоретико-множественные операции
Файловый ввод-вывод массивов
Хранение массивов на диске в двоичном формате
Сохранение и загрузка текстовых файлов
Линейная алгебра
Генерация случайных чисел
Пример: случайное блуждание
Моделирование сразу нескольких случайных блужданий
Глава 5. Первое знакомство с pandas
Введение в структуры данных pandas
Объект Series
Объект DataFrame
Индексные объекты
Базовая функциональность
Переиндексация
Удаление элементов из оси
Доступ по индексу, выборка и фильтрация
Арифметические операции и выравнивание данных
Применение функций и отображение
Сортировка и ранжирование
Индексы по осям с повторяющимися значениями
Редукция и вычисление описательных статистик
Корреляция и ковариация
Уникальные значения, счетчики значений и членство
Обработка отсутствующих данных
Фильтрация отсутствующих данных
Иерархическое индексирование
Уровни переупорядочения и сортировки
Сводная статистика по уровню
Работа со столбцами DataFrame
Другие возможности pandas
Доступ по целочисленному индексу
Структура данных Panel
Глава 6. Чтение и запись данных, форматы файлов
Чтение и запись данных в текстовом формате
Чтение текстовых файлов порциями
Вывод данных в текстовом формате
Ручная обработка данных в формате с разделителями
Данные в формате JSON
XML и HTML: разбор веб-страниц
Разбор XML с помощью lxml.objectify
Двоичные форматы данных
Взаимодействие с HTML и Web API
Взаимодействие с базами данных
Чтение и сохранение данных в MongoDB
Глава 7. Переформатирование данных: очистка,
преобразование, слияние, изменение формы
Комбинирование и слияние наборов данных
Слияние объектов DataFrame как в базах данных
Слияние по индексу
Конкатенация вдоль оси
Комбинирование перекрывающихся данных
Изменение формы и поворот
Изменение формы с помощью иерархического индексирования
Поворот из «длинного» в «широкий» формат
Преобразование данных
Устранение дубликатов
Преобразование данных с помощью функции или отображения
Замена значений
Переименование индексов осей
Дискретизация и раскладывание
Обнаружение и фильтрация выбросов
Перестановки и случайная выборка
Вычисление индикаторных переменных
Манипуляции со строками
Методы строковых объектов
Регулярные выражения
Векторные строковые функции в pandas
Пример: база данных о продуктах питания министерства сельского хозяйства США
Глава 8. Построение графиков и визуализация
Краткое введение в API библиотеки matplotlib
Рисунки и подграфики
Цвета, маркеры и стили линий
Риски, метки и надписи
Аннотации и рисование в подграфике
Сохранение графиков в файле
Конфигурирование matplotlib
Функции построения графиков в pandas
Линейные графики
Столбчатые диаграммы
Гистограммы и графики плотности
Диаграммы рассеяния
Нанесение данных на карту: визуализация данных о землетрясении на Гаити
Инструментальная экосистема визуализации для Python
Chaco
mayavi
Прочие пакеты
Будущее средств визуализации
Глава 9. Агрегирование данных и групповые операции
Механизм GroupBy
Обход групп
Выборка столбца или подмножества столбцов
Группировка с помощью словарей и объектов Series
Группировка с помощью функций
Группировка по уровням индекса
Агрегирование данных
Применение функций, зависящих от столбца, и нескольких функций
Возврат агрегированных данных в «неиндексированном» виде
Групповые операции и преобразования
Метод apply: часть общего принципа разделения–применения объединения
Квантильный и интервальный анализ
Пример: подстановка зависящих от группы значений вместо отсутствующих
Пример: случайная выборка и перестановка
Пример: групповое взвешенное среднее и корреляция
Пример: групповая линейная регрессия
Сводные таблицы и кросс-табуляция
Таблицы сопряженности
Пример: база данных федеральной избирательной комиссии за 2012 год
Статистика пожертвований по роду занятий и месту работы
Распределение суммы пожертвований по интервалам
Статистика пожертвований по штатам
Глава 10. Временные ряды
Типы данных и инструменты, относящиеся к дате и времени
Преобразование между строкой и datetime
Основы работы с временными рядами
Индексирование, выборка, подмножества
Временные ряды с неуникальными индексами
Диапазоны дат, частоты и сдвиг
Генерация диапазонов дат
Частоты и смещения дат
Сдвиг данных (с опережением и с запаздыванием)
Часовые пояса
Локализация и преобразование
Операции над объектами Timestamp с учетом часового пояса
Операции между датами из разных часовых поясов
Периоды и арифметика периодов
Преобразование частоты периода
Квартальная частота периода
Преобразование временных меток в периоды и обратно
Создание PeriodIndex из массивов
Передискретизация и преобразование частоты
Понижающая передискретизация
Повышающая передискретизация и интерполяция
Передискретизация периодов
Графики временных рядов
Скользящие оконные функции
Экспоненциально взвешенные функции
Бинарные скользящие оконные функции
Скользящие оконные функции, определенные пользователем
Замечания о быстродействии и потреблении памяти
Глава 11. Финансовые и экономические приложения
О переформатировании данных
Временные ряды и выравнивание срезов
Операции над временными рядами с различной частотой
Время суток и выборка данных «по состоянию на»
Сращивание источников данных
Индексы доходности и кумулятивная доходность
Групповые преобразования и анализ
Оценка воздействия групповых факторов
Децильный и квартильный анализ
Другие примеры приложений
Стохастический граничный анализ
Роллинг фьючерсных контрактов
Скользящая корреляция и линейная регрессия
Глава 12. Дополнительные сведения о библиотеке NumPy
Иерархия типов данных в NumPy
Дополнительные манипуляции с массивами
Изменение формы массива
Упорядочение элементов массива в C и в Fortran
Конкатенация и разбиение массива
Повторение элементов: функции tile и repeat
Эквиваленты прихотливого индексирования: функции take и put
Укладывание
Укладывание по другим осям
Установка элементов массива с помощью укладывания
Дополнительные способы использования универсальных функций
Методы экземпляра u-функций
Пользовательские u-функции
Структурные массивы
Вложенные типы данных и многомерные поля
Зачем нужны структурные массивы?
Манипуляции со структурными массивами: numpy.lib.recfunctions
Еще о сортировке
Косвенная сортировка: методы argsort и lexsort
Альтернативные алгоритмы сортировки
Метод numpy.searchsorted: поиск элементов в отсортированном массиве
Класс matrix в NumPy
Дополнительные сведения о вводе-выводе массивов
Файлы, спроецированные на память
HDF5 и другие варианты хранения массива
Замечание о производительности
Важность непрерывной памяти
Другие возможности ускорения: Cython, f2py, C
приложение. Основы языка Python
Интерпретатор Python
Основы
Семантика языка
Скалярные типы
Поток управления
Структуры данных и последовательности
Список
Встроенные функции последовательностей
Словарь
Множество
Списковое, словарное и множественное включение
Функции
Пространства имен, области видимости и локальные функции
Возврат нескольких значений
Функции являются объектами
Анонимные (лямбда) функции
Замыкания: функции, возвращающие функции
Расширенный синтаксис вызова с помощью *args и **kwargs
Каррирование: частичное фиксирование аргументов
Генераторы
Генераторные выражения
Модуль itertools
Файлы и операционная система
Предметный указатель