К курсам
AI018 Professional

Руководство по использованию NumPy

Полное введение и техническое руководство по NumPy, охватывающее установку, манипуляции с массивами, индексирование, распространение и интеграцию с C/C++.

4.9
15.0h
891 учеников
0 лайки
Искусственный интеллект
Начать обучение

Обзор курса

📚 Обзор содержания

Полное введение и техническое руководство по NumPy, охватывающее установку, манипуляцию массивами, индексирование, трансляцию и интеграцию с C/C++.

Освойте основы научных вычислений на Python с официальным руководством NumPy.

Автор: Сообщество NumPy

Благодарности: Написано сообществом NumPy

🎯 Цели обучения

  1. Определить NumPy и определить его роль в экосистеме научного программирования на Python.
  2. Объяснить, почему NumPy значительно быстрее стандартных циклов Python с использованием концепции векторизации.
  3. Выполнить команды установки для различных сред, включая Pip, Conda и Raspberry Pi.
  4. Определить и интерпретировать основные атрибуты ndarray, такие как ndim, shape и dtype.
  5. Выполнить создание и манипуляцию массивами с помощью функций, таких как linspace, reshape, vstack и hstack.
  6. Применить операции над элементами, универсальные функции (ufuncs) и решатели линейной алгебры к числовым наборам данных.
  7. Управлять точностью данных и предотвращать ошибки переполнения с помощью скалярных типов NumPy и инструментов информации (iinfo, finfo).
  8. Реализовать гибкую загрузку данных с диска с помощью genfromtxt с пользовательскими разделителями, заголовками и выбором столбцов.
  9. Применить общие правила трансляции для прогнозирования и контроля взаимодействий между массивами разной формы.
  10. Управлять ссылками на память и избегать "подводных камней" при создании собственных подклассов ndarray с использованием атрибута .base.

🔹 Урок 1: Введение и настройка среды

Обзор: В этом уроке представлено понятие NumPy как фундаментальной библиотеки для научных вычислений на Python, объясняется её преимущество по производительности за счёт векторизации. Учащиеся узнают, как устанавливать библиотеку на разных платформах (Windows, Raspberry Pi, Conda, PyCharm), а также как устранять распространённые проблемы установки, такие как ImportError, путём управления переменными среды и системными зависимостями.

Результаты обучения:

  • Определить NumPy и определить его роль в экосистеме научного программирования на Python.
  • Объяснить, почему NumPy значительно быстрее стандартных циклов Python с использованием концепции векторизации.
  • Выполнить команды установки для различных сред, включая Pip, Conda и Raspberry Pi.

🔹 Урок 2: Основы и манипуляция массивами

Обзор: В этом уроке даётся всестороннее введение в объект ndarray NumPy, рассматриваются его основные атрибуты, методы создания и базовые математические операции. Далее рассматривается расширенная тематика, включая продвинутое индексирование (по логическим и целочисленным условиям), изменение формы, а также важные процедуры линейной алгебры. По завершении этого модуля учащиеся смогут эффективно хранить, преобразовывать и анализировать многомерные структуры данных.

Результаты обучения:

  • Определить и интерпретировать основные атрибуты ndarray, такие как ndim, shape и dtype.
  • Выполнить создание и манипуляцию массивами с помощью функций, таких как linspace, reshape, vstack и hstack.
  • Применить операции над элементами, универсальные функции (ufuncs) и решатели линейной алгебры к числовым наборам данных.

🔹 Урок 3: Расширенная обработка данных и трансляция

Обзор: В этом уроке рассматриваются продвинутые механизмы работы с данными в NumPy, с акцентом на точное управление типами данных, обработку переполнений и сложные операции ввода-вывода с помощью genfromtxt. Учащиеся освоят внутреннюю логику трансляции для арифметических операций, нюансы порядка байтов на уровне памяти, а также создание структурированных/записных массивов для неоднородных наборов данных. Последние разделы описывают расширяемость NumPy через пользовательские контейнеры массивов и формальные протоколы для подклассификации ndarray.

Результаты обучения:

  • Управлять точностью данных и предотвращать ошибки переполнения с помощью скалярных типов NumPy и инструментов информации (iinfo, finfo).
  • Реализовать гибкую загрузку данных с диска с помощью genfromtxt с пользовательскими разделителями, заголовками и выбором столбцов.
  • Применить общие правила трансляции для прогнозирования и контроля взаимодействий между массивами разной формы.

🔹 Урок 4: Числовые исключения и взаимодействие с языком

Обзор: В этом уроке рассматриваются продвинутые нюансы подклассификации NumPy, особенно в части управления памятью и совместимости с последующими версиями. Также исследуется, как реализуется стандарт IEEE 754 для двойной точности в NumPy для обработки специальных значений и числовых исключений, завершаясь механизмами взаимодействия с массивами NumPy с низкоуровневыми языками, такими как C, C++ и Fortran.

Результаты обучения:

  • Управлять ссылками на память и избегать "подводных камней" при создании собственных подклассов ndarray с использованием атрибута .base.
  • Поддерживать совместимость с последующими версиями в подклассах путём правильной реализации __array_wrap__ и сигнатур методов.
  • Определять и управлять специальными значениями стандарта IEEE 754 (NaN, Inf) и настраивать глобальное поведение числовых исключений.

🔹 Урок 5: Расширение возможностей NumPy через C-API

Обзор: В этом уроке рассматриваются различные способы расширения функциональности NumPy путём взаимодействия с компилируемыми языками, такими как C, C++ и Fortran. Рассматриваются автоматизированные инструменты, такие как f2py и Cython, ручное обёртывание с помощью ctypes, создание высокопроизводительных универсальных функций (ufuncs), а также продвинутые техники работы с C-API для итерации массивов, пользовательских типов данных и подтипизации ndarray.

Результаты обучения:

  • Сравнивать и реализовывать различные методы "связывания" скомпилированного кода с Python (f2py, Cython, ctypes).
  • Создавать и регистрировать пользовательские универсальные функции NumPy (ufuncs) для одиночных и множественных типов данных, включая структурированные массивы.
  • Использовать C-API NumPy для эффективной итерации массивов, обработки трансляции и определения пользовательских типов данных или подтипов ndarray.