Урок курса
NumPy для начинающих: массивы, форма и вычисления
NumPy и pandas: практический тренажёрNumPy — базовая библиотека Python для числовых вычислений. Она хранит данные в однородных многомерных массивах ndarray и выполняет операции сразу над целыми массивами. NumPy лежит в основе pandas, scikit-learn и многих библиотек для анализа данных.
Ниже — маршрут для начинающего: от создания массива до индексации, изменения формы и вычислений по осям. Ссылки ведут на бесплатные уроки с примерами и задачами.
Чем массив NumPy отличается от списка Python
Список может содержать объекты разных типов. Массив NumPy обычно хранит элементы одного dtype и имеет прямоугольную форму. Благодаря этому библиотека выполняет вычисления компактно и без Python-цикла над каждым элементом.
import numpy as np
temperatures = np.array([18.5, 20.0, 21.5, 19.0])
adjusted = temperatures + 1.5
Выражение temperatures + 1.5 прибавляет число ко всем элементам. Такой подход называется векторизацией.
Маршрут изучения NumPy
1. Поймите устройство ndarray
У массива есть число измерений ndim, форма shape, общее количество элементов size и тип данных dtype. Эти свойства помогают заранее понять, какие операции допустимы. Начните с урока «ndarray: создание и свойства».
matrix = np.array([
[10, 20, 30],
[40, 50, 60],
])
print(matrix.shape) # (2, 3)
print(matrix.ndim) # 2
2. Выберите подходящий конструктор
np.arange удобен для последовательности с заданным шагом, np.linspace — для фиксированного количества равномерно расположенных точек, np.zeros и np.ones — для массивов заданной формы. Разница и типичные пограничные случаи разобраны в уроке «arange, linspace и zeros».
hours = np.arange(0, 24, 3)
grid = np.linspace(0.0, 1.0, num=5)
canvas = np.zeros((3, 4))
3. Научитесь менять форму
reshape меняет представление формы без изменения количества элементов. transpose переставляет оси. Ошибка возникает, если новая форма требует другого количества значений. Практика находится в уроке «NumPy reshape и transpose».
values = np.arange(12)
table = values.reshape(3, 4)
columns_as_rows = table.T
4. Освойте индексацию и срезы
В двумерном массиве сначала указывается строка, затем столбец: array[row, column]. Срезы позволяют выбирать диапазоны без ручного цикла. Подробный разбор находится в уроке «Индексация и срезы в NumPy».
first_row = table[0, :]
second_column = table[:, 1]
bottom_right = table[-1, -1]
5. Разберитесь с осями и broadcasting
Параметр axis указывает, вдоль какого измерения выполняется операция. Для матрицы axis=0 обычно сворачивает строки и оставляет результат по столбцам, а axis=1 сворачивает столбцы и возвращает результат по строкам.
column_totals = table.sum(axis=0)
row_averages = table.mean(axis=1)
Broadcasting позволяет выполнять операции над массивами совместимых форм. Полезно не запоминать отдельные примеры, а сравнивать размеры справа налево: они должны совпадать либо один из них должен быть равен единице.
Типичные ошибки новичков
- Использовать
arangeс дробным шагом и ожидать точного включения правой границы. - Путать номер оси с направлением, которое визуально видно в таблице.
- Менять срез и не учитывать, что он может быть представлением исходного массива.
- Смешивать массивы несовместимых форм и не проверять правила broadcasting.
- Оставлять целочисленный
dtype, когда расчёт должен сохранять дробную часть.
Что изучать после основ
После массивов, формы и индексации переходите к булевым маскам, агрегатам, broadcasting, матричным операциям, обработке NaN, сортировке и различию между view и copy. В бесплатном курсе NumPy и pandas эти темы связаны с последующей работой в DataFrame и закрепляются задачами с автоматической проверкой.
Продолжить с проверкой и прогрессом
Откройте интерактивный раннер с заданиями урока.
