Перейти к содержанию

172 уроков, 13 библиотек и челлендж «Что выведет код?» — бесплатно, код прямо в браузере

Начать обучение
Честное сравнение Вердикт с условием 20 бесплатных уроков

NumPy или Pandas: что учить первым для анализа данных

Сравниваем две библиотеки по 8 критериям и отвечаем на вопрос, который делит всех новичков аналитики: с чего начать. С вердиктом, который можно оспорить условиями.

Редакция Питоники

Pandas построен поверх NumPy — с этого и начнём

Хотите в аналитику и не знаете, с какой библиотеки начать? В вакансиях требуют обе, в курсах порядок разный, а на форумах советуют «учите всё». Совет плохой: учить всё дольше, чем учить по порядку.

Разница между NumPy и Pandas не во вкусе, а в этаже. NumPy хранит числа одного типа сплошным блоком памяти и считает операции в скомпилированном коде на C — на миллионе элементов это в 50–100 раз быстрее циклов по спискам. Pandas добавляет к массивам подписи: строки и столбцы получают имена, в разных столбцах уживаются разные типы, файлы читаются сразу в таблицу. DataFrame — надстройка над массивами NumPy, а не замена им.

Поэтому вопрос на самом деле не «что выбрать», а «что ставить первым этажом». Наш ответ — ниже, вместе с условием, на котором его можно отменить.

Короткий ответ: сначала NumPy, потом Pandas

Вердикт: самоучитель NumPy с нуля — 10 уроков за 10–14 часов, затем курс Pandas — ещё 10 уроков и 12–16 часов. Аргумент простой: Pandas построен поверх NumPy, и без понимания ndarray, осей и broadcasting вы будете постоянно спотыкаться в Pandas. Месяц практики по порядку вместо месяцев борьбы вперемешку.

Условие, при котором вердикт отменяется: если ваши данные — всегда табличные CSV/Excel и числодробилку (сигналы, матрицы, свои метрики на массивах) вы писать не собираетесь, начинайте с Pandas. Первый DataFrame соберётся за 35 минут первого урока, а np-массивы под капотом всё равно встретятся: в уроке 8 курса Pandas категории по столбцу расставляет np.where.

Возьмите NumPy первым, если...

  • хотите понимать, на чём стоит стек данных: Pandas, Scikit-learn и половина ML;
  • ждут матрицы, симуляции или свои метрики на массивах;
  • уже знаете основы Python — переменные, циклы, функции;
  • не хотите потом разгадывать ошибки Pandas без базы.
Самоучитель NumPy с нуля

Начните с Pandas, если...

  • ваши данные — всегда таблицы CSV/Excel, а цель — анализ, не математика;
  • горит рабочая задача: сводные, чистка пропусков, отчёт по продажам;
  • пришли из Excel и хотите быстрой победы в первый вечер;
  • NumPy готовы добрать по ходу, когда он встретится.
Курс Pandas: 10 уроков

Не гадайте: четыре вопроса о ваших данных

Найдите свой вариант в каждом вопросе и раскройте его — под ответом последствия для вашего порядка обучения.

Таблица продаж: заказы, товары, клиенты

Ваша стихия — Pandas. Весь курс Pandas — одна сквозная история про продажи интернет-магазина: от read_csv до отчёта с выводами.

Годовая температура по дням, замеры, статистика

Это проект финального урока NumPy: маски, скользящие средние, статистика по месяцам и отчёт. Начните с массивов.

И то и другое

Порядок не меняется: сначала NumPy, потом Pandas. Это разные этажи одного дома, а не две конкурирующие библиотеки.

Excel захлёбывается на больших файлах

Pandas: миллион строк обрабатывает быстрее, чем Excel открывает файл, а каждый шаг анализа повторяется одной кнопкой.

Циклы по спискам в Python тормозят

NumPy. В замере урока 4 векторизация обошла цикл в 57 раз: 1.9 мс против 108.3 мс на миллионе элементов.

Ничего — просто хочу в аналитику

Тогда вердикт в силе: NumPy первым, чтобы таблицы Pandas не были магией. Дальше оба самоучителя — по 10 уроков.

Основы есть: переменные, циклы, функции

Открыты оба маршрута. Наш — NumPy, потом Pandas: вы пройдёте оба без лишних возвратов.

Только начал учить язык

Отложите обе библиотеки. Pandas — библиотека Python, и без базового синтаксиса будет тяжело: сначала переменные, списки и функции.

Уверенно пишу свои модули

NumPy закроется за 10–14 часов, и вы поймёте, на чём стоит вся data-science экосистема Python.

Аналитик данных: отчёты, сводные, метрики

Pandas обязателен — это главный инструмент аналитика. NumPy нужен, чтобы понимать, откуда берутся ошибки внутри DataFrame.

ML и data science

NumPy строго первым: Scikit-learn и половина машинного обучения стоят на его массивах.

Автоматизация рутины с файлами

Pandas: read_csv, чистка пропусков, сводная — рабочий цикл уже в первых уроках курса.

NumPy vs Pandas: сравнение по 8 критериям

Метка в последней колонке — чьё преимущество в этом пункте.

Сравнение NumPy и Pandas по восьми критериям
КритерийNumPyPandasПлюс
Основной объектndarray — многомерный массив чисел одного типаDataFrame — таблица с подписанными строками и столбцамиравны
Типы данныхОдин dtype на весь массивВ разных столбцах — разные типыPandas
Скорость на числахСкомпилированный код на C: в 50–100 раз быстрее циклов по спискамТоже быстра, но уровнем выше — работает поверх массивов NumPyNumPy
Источники данныхМассивы из списков, диапазонов и генераторовread_csv, read_excel, read_json — файлы читаются сразу в таблицуPandas
Подписи строк и столбцовТолько позиции: arr[2, 3]Имена: df["price"], loc по метке строкиPandas
Пропуски в данныхНемного: nan-варианты агрегатов вроде nanmeanЦелая кухня чистки: isna, dropna, fillnaPandas
Сильная сторонаВекторизация, broadcasting, оси — фундамент скоростных расчётовСводные через groupby, merge таблиц, временные рядыравны
Место в экосистемеФундамент: на нём стоят Pandas, Scikit-learn и половина машинного обученияНадстройка над NumPy, заточенная под таблицыNumPy

Картина честная: Pandas берёт удобство таблиц, NumPy — скорость и фундамент. Именно поэтому порядок «сначала NumPy» не спор с таблицей, а чтение её сверху вниз.

Одна задача — обе библиотеки

Скидка 10% на массив цен. Слева NumPy: операция сразу над всем массивом. Справа Pandas: тот же расчёт, но результат становится именованным столбцом таблицы. Почувствуйте разницу этажей.

numpy — скидка на массиве
import numpy as np

prices = np.array([1290, 450, 899, 2100])

# скидка 10% сразу на весь массив
final = prices * 0.9
Одна строка вместо цикла. Правило раздела NumPy: никаких for там, где есть операция.
pandas — скидка в столбце таблицы
import pandas as pd

df = pd.DataFrame({"price": [1290, 450, 899, 2100]})
df["final"] = df["price"] * 0.9
Столбец получил имя и встроился в таблицу — так в курсе Pandas растёт отчёт о продажах.

Обе библиотеки предустановлены в песочнице Питоники: код из уроков запускается прямо на странице, без установки Python и pip. Прогресс и XP — бесплатно.

Разминка: по задаче из первого урока каждой библиотеки

Две задачи NumPy и две Pandas — из настоящих первых уроков. Предскажите вывод до запуска: навык на обоих этажах один и тот же.

Что выведет код?

Сначала предскажи ответ в голове — это главный навык программиста.

import numpy as np

lst = [1, 2, 3, 4]
arr = np.array(lst)

print(lst * 2)
print(arr * 2)
import pandas as pd

s = pd.Series([10, 20, 30, 40])
print(s[2])
import numpy as np

m = np.array([[1, 2, 3], [4, 5, 6]])
print(m.shape, m.size)
import pandas as pd

df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
print(df.shape)

Два бесплатных маршрута по 10 уроков

Оба раздела ведут от нуля до готового проекта. Смотрите, что ждёт на каждом.

Маршрут NumPy · ≈ 10–14 часов

  1. Уроки 1–3: первый ndarray, создание массивов, индексация и срезы
  2. Уроки 4–7: векторизация, broadcasting, агрегаты, оси и reshape
  3. Уроки 8–10: маски, случайные числа, проект по температуре за год
Открыть самоучитель NumPy

Маршрут Pandas · ≈ 12–16 часов

  1. Уроки 1–3: DataFrame и Series, read_csv, выборки loc/iloc
  2. Уроки 4–7: чистка данных, groupby, сортировки, merge
  3. Уроки 8–10: новые столбцы, временные ряды, проект по продажам
Открыть курс Pandas

Команды по ходу уроков не нужно держать в голове: шпаргалки NumPy и Pandas находят команду по описанию задачи словами.

Частые вопросы: NumPy или Pandas

Да, нужен. Pandas построен поверх NumPy: DataFrame — это надстройка над массивами. Без понимания ndarray, осей и broadcasting вы будете постоянно спотыкаться в Pandas — оттуда и наш порядок «сначала NumPy»: это самый короткий путь к обеим библиотекам сразу.

Раздел NumPy рассчитан на 10–14 часов, Pandas — на 12–16. Итого 22–30 часов практики. При одном уроке в день NumPy осядет за две недели, обе библиотеки — за месяц. Каждый урок — короткая теория, код с запуском в браузере и тест.

NumPy — про массивы чисел одного типа и скорость: операции идут в скомпилированном коде на C. Pandas — про таблицы: у строк и столбцов есть подписи, в разных столбцах уживаются разные типы, а read_csv открывает файл сразу в DataFrame. На практике библиотеки используют вместе.

Технически да: первый DataFrame собирается из словаря за 35 минут первого урока, и NumPy там не нужен. Но массивы встретятся уже в уроке 8 — категории по столбцу расставляет np.where, — а без осей и broadcasting сообщения об ошибках будут темнее. Начали с Pandas — вернитесь к NumPy, когда таблицы станут привычными.

Да. Интерпретатор Python с NumPy и Pandas встроен прямо в страницы: код запускается кнопкой в вашем браузере, ничего устанавливать не нужно. Прогресс и XP сохраняются бесплатно — как и на остальных уроках Питоники.

Что почитать ещё

Сложите оба этажа за месяц

Пройдите первый урок каждой библиотеки: по 30–60 минут на каждый, интерпретатор уже встроен в страницы, регистрация не нужна. За вечер вы увидите разницу своими глазами.

20 уроков обоих разделов код запускается на странице прогресс и XP бесплатно