Нашли ошибку?

NumPy

Массивы и быстрые вычисления над ними: создание, индексация, транслирование, агрегации, линейная алгебра.

Написано для NumPy 2.5.3 · документация

базовый средний продвинутый

1. Основы

  1. Что такое NumPyБиблиотека для быстрых вычислений над массивами чисел — основа pandas, scikit-learn и почти всего научного Python.базовый
  2. Настройки отображенияКак NumPy печатает массивы и числа и как временно изменить точность, научную запись и сокращение длинных массивов.базовый
  3. Создание массивовВсе основные способы получить массив — из списка, заполненный значением, диапазон чисел, единичная матрица.базовый
  4. Атрибуты массиваФорма, число измерений, размер, тип элементов и занимаемая память — то, что первым делом смотрят у незнакомого массива.базовый
  5. Типы данных и astypeКакой тип у элементов, как его сменить и почему целые числа в массиве могут молча переполниться.базовый

2. Индексация

  1. Индексация и срезыКак взять один элемент, диапазон или каждый k-й элемент одномерного массива и как записать туда новые значения.базовый
  2. Многомерная индексацияЭлемент, строка, столбец или прямоугольный блок двумерного массива — одним индексом через запятую.базовый
  3. Булевы маскиОтобрать или изменить элементы по условию — без циклов и if.средний
  4. Fancy-индексацияВыбор элементов по списку индексов — в любом порядке и с повторами.средний
  5. where, nonzero, selectВыбрать значение по условию для каждого элемента или найти индексы элементов, подходящих под условие.средний

3. Вычисления

  1. Арифметика с массивамиСложение, умножение, деление и степень сразу для всех элементов — основа любых вычислений в NumPy.базовый
  2. Сравнение массивовПочему a == b не отвечает «равны ли массивы» и чем проверять равенство целиком — точно и с допуском.базовый
  3. Базовые агрегацииСумма, среднее, минимум, максимум и их индексы — сворачивают массив в одно число.базовый
  4. Округление и clipОкруглить до нужного знака, вниз, вверх или к нулю и ограничить значения диапазоном.базовый
  5. Оси: axis и keepdimsПосчитать сумму, среднее или максимум по строкам или по столбцам — и не перепутать, что значат axis=0 и axis=1.средний
  6. Универсальные функции (ufunc)Математические функции, которые применяются к каждому элементу со скоростью C, и их методы reduce, accumulate, outer.средний
  7. Транслирование (broadcasting)Поэлементные операции над массивами разной формы — без циклов и без копирования данных.средний
  8. Разности: diff и gradientИзменение между соседними элементами — расход по показаниям счётчика, прирост по дням, скорость по координатам.средний

4. Форма массива

  1. Представления и копииКогда изменение «нового» массива меняет исходный — и как это проверить.средний
  2. reshape и ravelРазложить те же данные в другую форму — например, 12 значений в таблицу 3 × 4 — или вытянуть таблицу в одну строку.средний
  3. Оси: T, newaxis, squeezeПоменять оси местами, добавить ось длины 1 или убрать лишние единичные оси.средний
  4. Объединение и разделениеСклеить несколько массивов в один по существующей или новой оси и разрезать массив на части.средний
  5. repeat и tileПовторить каждый элемент или весь массив несколько раз.средний
  6. flip, roll, rot90Развернуть массив по оси, циклически сдвинуть элементы или повернуть матрицу.средний
  7. Дополнение: padДобавить значения по краям массива — нули, повтор края, зеркальное отражение.средний

5. Сортировка и множества

  1. СортировкаУпорядочить массив, узнать порядок индексов и отсортировать строки таблицы по столбцу.средний
  2. searchsorted и partitionБыстрый поиск позиции в отсортированном массиве и выбор k наименьших или наибольших без полной сортировки.средний
  3. Уникальные значения и множестваСписок различных значений с частотами, проверка вхождения и операции над множествами — пересечение, объединение, разность.средний

6. Данные

  1. NaN и бесконечностиКак хранить пропуски в массиве, находить их и считать суммы и средние без них.средний
  2. Случайные числаГенератор случайных чисел: целые и дробные, нормальное распределение, случайный выбор и перемешивание — воспроизводимо через seed.средний
  3. СтатистикаСреднее, медиана, стандартное отклонение, перцентили, взвешенное среднее и корреляция.средний
  4. Гистограммы и подсчётСколько значений попало в каждый интервал, сколько раз встретилось каждое целое и к какой группе относится значение.средний
  5. Сетки: meshgridПолучить координаты всех точек прямоугольной сетки, чтобы посчитать функцию двух переменных без циклов.средний
  6. Даты: datetime64Массивы дат и промежутков времени — арифметика, диапазоны, рабочие дни.средний
  7. Сохранение и загрузкаСохранить массив в файл и прочитать обратно — в двоичном формате NumPy или в текстовом CSV.средний

7. Продвинутое

  1. Матричное умножениеОператор @ и функции dot, inner, outer — чем матричное произведение отличается от поэлементного.продвинутый
  2. Линейная алгебраРешить систему уравнений, найти обратную матрицу, определитель, собственные значения, норму и приближённое решение методом наименьших квадратов.продвинутый
  3. Векторизация вместо цикловКак переписать цикл Python на операции над целыми массивами и почему np.vectorize не делает код быстрее.продвинутый
  4. Операции на месте и out=Изменить массив без создания нового — экономия памяти на больших данных и частый источник неожиданных побочных эффектов.продвинутый
  5. Порядок памяти и stridesКак массив хранится в памяти, почему транспонирование ничего не копирует и когда порядок влияет на скорость.продвинутый
  6. Скользящие окнаСкользящее среднее, максимум за последние дни и окна в изображении — без циклов и без копирования данных.продвинутый
  7. einsumОдна функция для сумм, транспонирования, скалярных и матричных произведений — записанных буквами индексов.продвинутый
  8. Структурированные массивыМассив записей с именованными полями разных типов — как таблица, но в одном массиве NumPy.продвинутый
  9. Маскированные массивыМассив с пометкой «значения нет» для отдельных элементов — пропуски даже в целых числах.продвинутый
  10. apply_along_axisПрименить функцию к каждой строке или столбцу — и понять, когда можно обойтись без этого.продвинутый
  11. Строки: np.stringsПоэлементные операции над массивами строк и строковый тип без ограничения длины.продвинутый

8. Итоги

  1. Частые ошибкиДвенадцать ошибок, которые чаще всего встречаются в коде с NumPy, — и как их исправить.базовый
  2. ШпаргалкаСамое нужное из NumPy на одной странице — задача и код, со ссылками на подробные статьи.базовый