СПРАВОЧНИК
NumPy
Массивы ndarray, математика, линейная алгебра
NumPy — базовая библиотека для численных вычислений в Python. Её ядро — однородный N-мерный массив ndarray, над которым операции выполняются векторно и быстро (на C). Здесь собраны частые функции: создание массивов, форма, индексация, математика, агрегации по осям, линейная алгебра и broadcasting.
import numpy as np
a = np.array([1, 2, 3])
print(a * 2) # [2 4 6]Агрегация 11
np.argmax()
np.argmax(a, axis=None)Индекс максимального элемента.np.argmin()
np.argmin(a, axis=None)Индекс минимального элемента.np.cumsum()
np.cumsum(a, axis=None)Накопительная (кумулятивная) сумма элементов.np.max()
np.max(a, axis=None)Максимальный элемент (всего массива или вдоль оси).np.mean()
np.mean(a, axis=None)Среднее арифметическое элементов (всего массива или по оси).np.median()
np.median(a, axis=None)Медиана — серединное значение упорядоченных элементов.np.min()
np.min(a, axis=None)Минимальный элемент (всего массива или вдоль оси).np.percentile()
np.percentile(a, q)Значение q-го процентиля выборки.np.std()
np.std(a, axis=None)Стандартное отклонение элементов.np.sum()
np.sum(a, axis=None)Сумма элементов всего массива или вдоль заданной оси.np.var()
np.var(a, axis=None)Дисперсия элементов (квадрат стандартного отклонения).Индексация и срезы 5
Fancy indexing
a[[i0, i1, ...]]Выбор элементов по массиву индексов (в любом порядке, с повторами).np.where()
np.where(condition, x, y)Поэлементный выбор между x и y по условию (или поиск индексов).Булева индексация
a[mask]Выбор элементов по булевой маске (массиву True/False).Индексация элементов
a[i] / a[i, j]Доступ к элементам по целочисленным индексам, в т.ч. многомерным.Срезы массива
a[start:stop:step]Выбор подмассива по диапазону индексов с шагом по каждой оси.Линейная алгебра 6
np.cross()
np.cross(a, b)Векторное произведение двух векторов.np.dot()
np.dot(a, b)Скалярное произведение векторов или умножение матриц.np.linalg.det()
np.linalg.det(a)Определитель квадратной матрицы.np.linalg.inv()
np.linalg.inv(a)Обратная матрица (для квадратной невырожденной матрицы).np.linalg.solve()
np.linalg.solve(a, b)Решение системы линейных уравнений A·x = b.np.matmul() / @
np.matmul(a, b) / a @ bМатричное умножение; оператор @ — короткая запись.Манипуляции 8
np.clip()
np.clip(a, a_min, a_max)Обрезает значения по нижней и верхней границе.np.concatenate()
np.concatenate([a, b], axis=0)Соединяет массивы вдоль существующей оси.np.hstack()
np.hstack([a, b])Горизонтальное объединение (в ряд, по столбцам).np.sort()
np.sort(a, axis=-1)Возвращает отсортированную копию массива.np.split()
np.split(a, indices_or_sections, axis=0)Разбивает массив на несколько подмассивов вдоль оси.np.stack()
np.stack([a, b], axis=0)Объединяет массивы вдоль новой оси (увеличивает размерность).np.unique()
np.unique(a)Уникальные элементы массива в отсортированном порядке.np.vstack()
np.vstack([a, b])Вертикальное объединение (друг под другом, по строкам).Математика 10
np.abs()
np.abs(x)Поэлементный модуль (абсолютное значение).np.add()
np.add(x1, x2)Поэлементное сложение массивов (эквивалент оператора +).np.divide()
np.divide(x1, x2)Поэлементное деление массивов (эквивалент оператора /).np.exp()
np.exp(x)Поэлементная экспонента e в степени x.np.log()
np.log(x)Поэлементный натуральный логарифм (по основанию e).np.mod()
np.mod(x1, x2)Поэлементный остаток от деления (эквивалент оператора %).np.multiply()
np.multiply(x1, x2)Поэлементное умножение массивов (эквивалент оператора *).np.power()
np.power(x1, x2)Поэлементное возведение в степень (эквивалент оператора **).np.sqrt()
np.sqrt(x)Поэлементный квадратный корень.np.subtract()
np.subtract(x1, x2)Поэлементное вычитание массивов (эквивалент оператора -).По осям 2
Свойства и форма 9
ndarray.astype()
a.astype(dtype)Возвращает копию массива, приведённую к другому типу.ndarray.dtype
a.dtypeТип элементов массива (например, int64, float64).ndarray.flatten()
a.flatten()Возвращает развёрнутую одномерную копию массива.ndarray.ndim
a.ndimЧисло измерений (осей) массива.ndarray.ravel()
a.ravel()Возвращает развёрнутый одномерный вид массива.ndarray.reshape()
a.reshape(newshape)Возвращает массив с новой формой без копирования данных.ndarray.shape
a.shapeКортеж с размерами массива по каждой оси.ndarray.size
a.sizeОбщее количество элементов массива.ndarray.T
a.TТранспонированный массив (оси переставлены в обратном порядке).Создание массивов 10
np.arange()
np.arange(start, stop, step)Массив чисел в диапазоне с заданным шагом (аналог range).np.array()
np.array(object, dtype=None)Создаёт ndarray из списка, кортежа или вложенных последовательностей.np.empty()
np.empty(shape, dtype=float)Массив заданной формы без инициализации (значения произвольные).np.eye()
np.eye(N, M=None, k=0)Единичная матрица: единицы на диагонали, нули вне её.np.full()
np.full(shape, fill_value, dtype=None)Массив заданной формы, заполненный произвольным значением.np.linspace()
np.linspace(start, stop, num=50)Равномерно распределённые точки на отрезке (граница включена).np.ones()
np.ones(shape, dtype=float)Массив заданной формы, заполненный единицами.np.random.rand()
np.random.rand(d0, d1, ...)Массив случайных чисел из равномерного распределения [0, 1).np.random.randint()
np.random.randint(low, high=None, size=None)Массив случайных целых чисел из полуинтервала [low, high).np.zeros()
np.zeros(shape, dtype=float)Массив заданной формы, заполненный нулями.