وبلاگ بلیان

Научное программирование на Python

معرفی کتاب «Научное программирование на Python» نوشتهٔ Кристиан Хилл; перевод с английского А. В. Снастина، منتشرشده توسط نشر ДМК Пресс در سال 2021. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «Научное программирование на Python» در دستهٔ بدون دسته‌بندی قرار دارد.

Книга начинается с общих концепций программирования, таких как циклы и функции в ядре Python 3, затем рассматриваются библиотеки NumPy, SciPy и Matplotlib для вычислительного программирования и визуализации данных. Обсуждается использование виртуального блокнота Jupyter Notebooks для создания мультимедийных совместно используемых документов для научного анализа. Отдельная глава посвящена анализу данных с использованием библиотеки pandas. В заключительной части представлены более сложные темы, такие как точность вычислений с применением чисел с плавающей точкой и обеспечение стабильности алгоритмов. Examples - https://scipython.com/book2/ Оглавление Предисловие от издательства Отзывы и пожелания Список опечаток Нарушение авторских прав Благодарности Список листингов Глава 1. Введение 1.1. Об этой книге 1.2. Немного о Python 1.2.1. Преимущества и недостатки языка Python 1.2.2. Python 2 или Python 3 1.3. Установка Python 1.4. Командная строка Глава 2. Ядро языка Python I 2.1. Командная оболочка Python 2.2. Числа, переменные, операции сравнения и логические операции 2.2.1. Типы числовых значений Целые числа Числа с плавающей точкой Комплексные числа 2.2.2. Использование командной оболочки Python в качестве калькулятора Простые арифметические действия Приоритет операторов Методы и атрибуты числовых значений Математические функции 2.2.3. Переменные Что такое переменная Имена переменных 2.2.4. Операции сравнения и логические операции Операторы Логические операторы Логические равенства и условное присваивание None – специальное значение в языке Python 2.2.5. Неизменяемость и идентичность 2.2.6. Упражнения Вопросы Задачи 2.3. Объекты Python I: строки 2.3.1. Определение объекта, представляющего строку 2.3.2. Escape-последовательности 2.3.3. Unicode 2.3.4. Индексирование и вырезание строк 2.3.5. Методы обработки строк 2.3.6. Функция print 2.3.7. Форматирование строк Введение в форматирование строк в версии Python 3 Форматирование числовых значений Форматированные строковые литералы (f-строки) Старый способ форматирования в стиле языка C 2.3.8. Упражнения Вопросы Задачи 2.4. Объекты Python II: списки, кортежи и циклы 2.4.1. Списки Инициализация и индексация списков Списки и свойство изменяемости Методы списка 2.4.2. Кортежи Объект tuple Использование кортежей 2.4.3. Итерируемые объекты Примеры итерируемых объектов Синтаксис Циклы for Тип range Метод enumerate Встроенная функция zip 2.4.4. Упражнения Вопросы Задачи 2.5. Управление потоком выполнения 2.5.1. Конструкция if...elif...else 2.5.2. Цикл while 2.5.3. Дополнительные средства управления потоком выполнения: break, continue, pass и else Команда break Команда continue Команда pass Команда else 2.5.4. Упражнения Вопросы Задачи 2.6. Файловый ввод/вывод 2.6.1. Открытие и закрытие файла 2.6.2. Запись в файл 2.6.3. Чтение из файла 2.6.4. Упражнения Задачи 2.7. Функции 2.7.1. Определение и вызов функций Строки документирования docstrings 2.7.2. Аргументы по умолчанию и именованные аргументы Именованные аргументы Аргументы по умолчанию 2.7.3. Область видимости Ключевые слова global и nonlocal 2.7.4. Передача аргументов в функции 2.7.5. Рекурсивные функции 2.7.6. Упражнения Вопросы Задачи Глава 3. Небольшое отступление: простые схемы и диаграммы 3.1. Создание простых схем 3.1.1. Линейные графики и точечные диаграммы 3.1.2. Метод linspace и векторизация 3.1.3. Упражнения Задачи 3.2. Метки, надписи и настройка параметров графиков 3.2.1. Метки и надписи Описание графика Название графика и метки осей Использование LATEX в pyplot 3.2.2. Графики со специализированными настройками параметров Маркеры Цвета Стили и ширина линий Границы графика 3.2.3. Упражнения Задачи 3.3. Построение более сложных графиков 3.3.1. График в полярных координатах 3.3.2. Гистограммы 3.3.3. Дополнительные оси 3.3.4. Упражнения Задачи Глава 4. Ядро языка Python II 4.1. Ошибки и исключения 4.1.1. Синтаксические ошибки 4.1.2. Исключения Исключение NameError Исключение ZeroDivisionError Исключения TypeError и ValueError 4.1.3. Обработка и генерация исключений Обработка исключений Генерация исключений 4.1.4. Упражнения Вопросы Задачи 4.2. Объекты Python III: словари и множества 4.2.1. Определение и индексирование словаря 4.2.2. Методы словаря Метод get() Методы keys, values и items Именованные аргументы Объект defaultdict 4.2.3. Множества Объекты frozenset 4.2.4. Упражнения Вопросы Задачи 4.3. Идиоматические выражения Python: синтаксический сахар 4.3.1. Рациональные операции сравнения и присваивания 4.3.2. Генерация списка 4.3.3. Лямбда-функции 4.3.4. Ключевое слово with 4.3.5. Генераторы 4.3.6. ◊ Встроенная функция map 4.3.7. ◊ Выражения присваивания: морж-оператор 4.3.8. Упражнения Вопросы Задачи 4.4. Сервисы операционной системы 4.4.1. Модуль sys Список sys.argv Метод sys.exit 4.4.2. Модуль os Информация о процессе Команды файловой системы Операции с путевым именем 4.4.3. Упражнения Задачи 4.5. Модули и пакеты 4.5.1. Модуль random Генерация случайных чисел Последовательности случайных чисел 4.5.2. ◊ Пакет urllib Открытие и чтение URL Запросы GET и POST 4.5.3. Модуль datetime Даты Время Объект datetime Форматирование даты и времени 4.6. ◊ Введение в объектно-ориентированное программирование 4.6.1. Основы объектно-ориентированного программирования 4.6.2. Определение и использование классов в Python Создание экземпляра класса Методы и атрибуты 4.6.3. Наследование класса в языке Python 4.6.4. Классы и операторы 4.6.5. Упражнения Задачи Глава 5. Командная оболочка IPython и блокнотная среда Jupyter Notebook 5.1. Командная оболочка IPython 5.1.1. Установка IPython 5.1.2. Использование командной оболочки IPython Команды вывода справочной информации Автоматическое дополнение ключевых слов с помощью клавиши Tab Хронология команд Взаимодействие с операционной системой 5.1.3. Магические функции IPython Псевдонимы и закладки Измерение времени выполнения кода Повторный вывод и повторное выполнение кода Загрузка, выполнение и сохранение исходного кода Захват вывода команд оболочки 5.1.4. Упражнения Задачи 5.2. Блокнотная среда Jupyter Notebook 5.2.1. Основы использования Jupyter Notebook Запуск сервера Jupyter Notebook Редактирование блокнота Jupyter Notebook Работа с ячейками Ячейки кода Ячейки текста с разметкой Основные команды разметки текста Код HTML в тексте с разметкой Списки Ссылки Математика Изображения и видеофрагменты 5.2.2. Преобразование документа блокнота в другие форматы Преобразование в формат HTML Преобразование в формат LaTeX Преобразование в формат Markdown Преобразование в код Python 5.2.3. JupyterLab Глава 6. Библиотека NumPy 6.1. Основные методы массива 6.1.1. Создание массива Создание простого массива Инициализация массива из последовательности Инициализация массива из функции Атрибуты ndarray для интроспекции 6.1.2. Основные типы данных (dtype) NumPy 6.1.3. Универсальные функции (unifunc) 6.1.4. Специальные значения NumPy: nan и inf 6.1.5. Изменение формы массива Методы flatten и ravel Методы resize и reshape Транспонирование массива Объединение и разделение массивов 6.1.6. Индексация и вырезание группы элементов из массива Более сложное индексирование Добавление оси Сетки 6.1.7. ◊ Бродкастинг 6.1.8. Максимальные и минимальные значения 6.1.9. Сортировка массива 6.1.10. Структурированные массивы Создание структурированного массива Другие способы создания структурированного массива Сортировка структурированных массивов 6.1.11. Массивы как векторы 6.1.12. Логические операции и операции сравнения 6.1.13. Упражнения Вопросы Задачи 6.2. Чтение и запись массива в файл 6.2.1. Методы np.save и np.load 6.2.2. Метод np.loadtxt 6.2.3. Метод np.genfromtxt Заголовки и примечания Поля фиксированной ширины Пропущенные данные Имена столбцов 6.2.4. Метод np.savetxt 6.2.5. Упражнения Задачи 6.3. Статистические методы 6.3.1. Порядковая статистика Максимумы и минимумы Процентили 6.3.2. Средние значения, дисперсии и корреляции Средние значения Стандартные отклонения и дисперсии 6.3.3. Гистограммы 6.3.4. Упражнения Задачи 6.4. Многочлены 6.4.1. Определение и вычисление многочлена 6.4.2. Алгебра многочленов 6.4.3. Поиск корней многочлена 6.4.4. Математический анализ 6.4.5. ◊ Классические ортогональные многочлены 6.4.6. Подгонка к многочленам Атрибуты domain и window Метод Polynomial.fit 6.4.7. Упражнения Вопросы Задачи 6.5. Линейная алгебра 6.5.1. Основные операции с матрицами Произведение матриц Другие свойства матриц 6.5.2. Собственные значения и собственные векторы 6.5.3. Решение уравнений Линейные скалярные уравнения Решение систем линейных уравнений методом наименьших квадратов (методом «наилучшего приближения») 6.5.4. Упражнения Вопросы Задачи 6.6. Случайная выборка 6.6.1. Равномерно распределенные случайные числа Случайные числа с плавающей точкой Случайные целые числа 6.6.2. Случайные числа из неравномерных распределений Нормальное распределение Биномиальное распределение Распределение Пуассона 6.6.3. Случайные выборки, перемешивания и перестановки 6.6.4. Упражнения Вопросы Задачи 6.7. Дискретные преобразования Фурье 6.7.1. Одномерные быстрые преобразования Фурье 6.7.2. Двумерные быстрые преобразования Фурье 6.7.3. Упражнения Вопросы Задачи Глава 7. Библиотека Matplotlib 7.1. Линейные графики и точечные диаграммы 7.1.1. Построение графика на одном объекте оси 7.1.2. Границы графика 7.1.3. Стили линий, маркеры и цвета 7.1.4. Точечные диаграммы 7.2. Специализированная настройка и улучшение качества графика 7.2.1. Линии сетки 7.2.2. Логарифмические шкалы 7.2.3. Добавление заголовков, надписей и описаний условных обозначений 7.2.4. Свойства шрифта 7.2.5. Штриховые метки на осях 7.2.6. Диаграммы погрешностей 7.2.7. Несколько графиков в одном рисунке 7.2.8. Сохранение рисунков Сохранение рисунков для вывода на печать Сохранение рисунков для использования в режиме онлайн 7.3. Столбиковые диаграммы, круговые диаграммы и диаграммы в полярных координатах 7.3.1. Столбиковые диаграммы и гистограммы 7.3.2. Круговые диаграммы 7.3.3. Диаграммы в полярных координатах 7.4. Аннотации для графиков 7.4.1. Добавление текста 7.4.2. Стрелки и текст 7.4.3. Линии и перекрывающие прямоугольники 7.4.4. ◊ Круги, многоугольники и прочие фигуры Окружности и эллипсы Прямоугольники Многоугольники Вопросы Задачи 7.5. Контурные диаграммы и тепловые карты 7.5.1. Контурные диаграммы 7.5.2. Тепловые карты Метод ax.imshow Методы ax.pcolor и ax.pcolormesh Цветовые шкалы 7.5.3. Упражнения Вопросы Задачи 7.6. Трехмерные графики 7.6.1. Каркасные и объемные поверхностные диаграммы 7.6.2. Линейные графики и точечные диаграммы 7.7. Анимация 7.7.1. Анимация данных на графике Простая анимированная линия Комбинирование битовых карт изображений 7.7.2. Анимация других объектов Matplotlib 7.7.3. Упражнения Задачи Глава 8. Библиотека SciPy 8.1. Физические константы и специальные функции 8.1.1. Физические константы 8.1.2. Функции Эйри и Бесселя 8.1.3. Гамма- и бета-функции; эллиптические интегралы 8.1.4. Функция распределения вероятности ошибок и связанные с ней функции 8.1.5. Интегралы Френеля 8.1.6. Биномиальные коэффициенты и интегралы от показательной функции 8.1.7. Ортогональные многочлены и сферические гармонические функции 8.1.8. Упражнения Вопросы Задачи 8.2. Интегрирование и обыкновенные дифференциальные уравнения 8.2.1. Определенные интегралы от одной переменной 8.2.2. Интегралы от двух и нескольких переменных 8.2.3. Обыкновенные дифференциальные уравнения Решение одного ОДУ первого порядка Система взаимосвязанных ОДУ первого порядка Обыкновенное дифференциальное уравнение второго порядка 8.2.4. Упражнения Вопросы Задачи 8.3. Интерполяция 8.3.1. Одномерная интерполяция 8.3.2. Многомерная интерполяция Интерполяция данных, структурированных по прямоугольной сетке Интерполяция неструктурированных данных 8.4. Оптимизация, подгонка данных и численные методы решения уравнений 8.4.1. Минимизация Минимизация без ограничений ◊ Оптимизация с ограничениями Минимизация функции одной переменной 8.4.2. Нелинейная подгонка методом наименьших квадратов 8.4.3. Численные методы решения уравнений 8.4.4. Упражнения Вопросы Задачи Глава 9. Анализ данных с помощью pandas 9.1. Введение в pandas 9.1.1. Что такое pandas 9.1.2. Объект Series 9.1.3. Объект DataFrame Создание объекта DataFrame Доступ к строкам, столбцам и ячейкам Совместное использование объектов Series и DataFrame 9.1.4. Сортировка, арифметические и статистические функции 9.2. Чтение и запись объектов Series и DataFrame 9.2.1. Чтение текстовых файлов Текстовые файлы с разделителями Текстовые файлы с содержимым постоянной ширины 9.2.2. Запись в текстовые файлы 9.2.3. Файлы Microsoft Excel 9.2.4. Веб-скрейпинг 9.2.5. Упражнения Задачи 9.3. Более сложное индексирование 9.3.1. Иерархические индексы с использованием MultiIndex 9.3.2. Метки времени и временны́е ряды 9.3.3. Упражнения Задачи 9.4. Очистка и обследование данных 9.4.1. Отсутствующие значения 9.4.2. Повторяющиеся значения 9.4.3. Статистическая группировка данных 9.4.4. Обработка промахов 9.4.5. Упражнения Задачи 9.5. Группирование и агрегация данных 9.5.1. Группирование DataFrame с помощью метода groupby 9.5.2. Упражнения Задачи 9.6. Примеры Глава 10. Общие положения научного программирования 10.1. Арифметика с плавающей точкой 10.1.1. Представление действительных чисел 10.1.2. Сравнение чисел с плавающей точкой 10.1.3. Потеря значащих разрядов 10.1.4. Обращение в машинный ноль и переполнение 10.1.5. Материалы для дальнейшего изучения 10.1.6. Упражнения Вопросы Задачи 10.2. Стабильность и обусловленность алгоритма 10.2.1. Стабильность алгоритма 10.2.2. Хорошо обусловленные и плохо обусловленные задачи 10.2.3. Упражнения Задачи 10.3. Методики программирования и разработка программного обеспечения 10.3.1. Общие замечания Комментирование исходного кода Магические числа Краткое руководство по стилю написания кода Python 10.3.2. Текстовые редакторы 10.3.3. Системы управления версиями 10.3.4. Модульное тестирование 10.3.5. Материалы для дальнейшего изучения Приложение A. Решения Приложение B. Различия между версиями Python 2 и 3 B.0.1. Целые числа и целочисленная арифметика B.0.2. Операции сравнения B.0.3. Ключевые слова B.0.4. Строки и Unicode B.0.5. Итераторы и списки Приложение C. Механизм решения обыкновенных дифференциальных уравнений odeint в библиотеке SciPy Одно обыкновенное дифференциальное уравнение первого порядка Одно обыкновенное дифференциальное уравнение второго порядка Словарь терминов Предметный указатель "Learn to master basic programming tasks from scratch with real-life, scientifically relevant examples and solutions drawn from both science and engineering. Students and researchers at all levels are increasingly turning to the powerful Python programming language as an alternative to commercial packages and this fast-paced introduction moves from the basics to advanced concepts in one complete volume, enabling readers to gain proficiency quickly. Beginning with general programming concepts such as loops and functions within the core Python 3 language, and moving on to the NumPy, SciPy and Matplotlib libraries for numerical programming and data visualization, this textbook also discusses the use of Jupyter Notebooks to build rich-media, shareable documents for scientific analysis. The second edition features a new chapter on data analysis with the pandas library and comprehensive updates, and new exercises and examples. A final chapter introduces more advanced topics such as floating-point precision and algorithm stability, and extensive online resources support further study. This textbook represents a targeted package for students requiring a solid foundation in Python programming"-- Provided by publisher "Learn to master basic programming tasks from scratch with real-life scientifically relevant examples and solutions drawn from both science and engineering. Students and researchers at all levels are increasingly turning to the powerful Python programming language as an alternative to commercial packages and this fast-paced introduction moves from the basics to advanced concepts in one complete volume, enabling readers to quickly gain proficiency. Beginning with general programming concepts such as loops and functions within the core Python 3 language, and moving onto the NumPy, SciPy and Matplotlib libraries for numerical programming and data visualisation, this textbook also discusses the use of IPython notebooks to build rich-media, shareable documents for scientific analysis. Including a final chapter introducing challenging topics such as floating-point precision and algorithm stability, and with extensive online resources to support advanced study, this textbook represents a targeted package for students requiring a solid foundation in Python programming"-- Learn to master basic Python programming tasks from scratch with real-life, scientifically-relevant examples and solutions drawn from science and engineering. This fast-paced introduction moves from the basics to advanced concepts in one complete volume, enabling readers to gain proficiency quickly. This Fast-paced Introduction To Python Moves From The Basics To Advanced Concepts, Enabling Readers To Gain Proficiency Quickly.
دانلود کتاب Научное программирование на Python