NumPy и базовые структуры Python на собеседовании
Что спрашивают по структурам данных и NumPy
Вопросы по базовому Python и NumPy — это фундамент, который проверяют на каждом собеседовании аналитика. Даже если основной фокус на pandas, интервьюер начнёт с простого: какие структуры данных есть в Python и когда какую использовать.
Четыре базовые структуры:
- list — упорядоченная изменяемая коллекция. Можно добавлять, удалять, сортировать. Самая частая структура в коде аналитика
- tuple — упорядоченная неизменяемая коллекция. Быстрее list, может быть ключом словаря. Используется, когда данные не должны меняться
- set — неупорядоченная коллекция уникальных элементов. Проверка наличия элемента за O(1). Идеален для удаления дубликатов
- dict — пары ключ-значение. Доступ по ключу за O(1). Основа для работы с JSON и конфигурациями
Частая ловушка: интервьюер спрашивает, можно ли использовать list как ключ словаря. Ответ — нет, потому что list изменяемый. Tuple — можно.
List comprehensions
Отдельный блок вопросов — генераторы списков. Интервьюеры просят переписать цикл в comprehension или наоборот — прочитать comprehension и сказать, что он вернёт.
Типичные задачи:
[x**2 for x in range(10) if x % 2 == 0]— квадраты чётных чисел от 0 до 9- Вложенные comprehensions:
[cell for row in matrix for cell in row]— разворачивание матрицы - Dict comprehension:
{k: v for k, v in zip(keys, values)}
Подвох: когда comprehension вредит. Если логика сложная — лучше обычный цикл, читаемость важнее краткости.
NumPy: что нужно знать аналитику
NumPy — основа pandas под капотом. Вопросы по нему обычно проверяют понимание двух ключевых концепций: векторизация и broadcasting.
Векторизация vs циклы — np.sum(arr) быстрее sum(arr) в десятки раз. Любая операция с numpy-массивом применяется поэлементно: arr * 2 умножает каждый элемент. Интервьюер может попросить переписать цикл через numpy.
Broadcasting — позволяет складывать массивы разных размерностей. Вектор (3,) прибавляется к матрице (3,3) — numpy «растягивает» вектор. При несовместимых формах — ValueError.
Основные операции — reshape (форма без изменения данных), np.where(condition, x, y) (аналог CASE WHEN из SQL), np.unique, np.concatenate.
Типичные задачи на собеседовании
Найдите уникальные элементы списка, сохранив порядок. Подвох:
set()порядок не сохраняет. Решение черезdict.fromkeys(lst)или цикл.Чем
arr.copy()отличается отarr2 = arr? Без copy — это ссылка на тот же объект. Изменение одного массива изменит другой.Что быстрее для поиска элемента: list или set? Set — O(1) vs O(n). На 10 миллионах элементов разница в тысячи раз.
Перемножьте два массива поэлементно и матрично. Поэлементно:
a * b. Матрично:a @ bилиnp.dot(a, b). Классическая проверка на внимательность.Что вернёт
np.mean([[1, 2], [3, 4]], axis=0)?[2.0, 3.0]— среднее по столбцам. axis=1 дало бы среднее по строкам.
Совет: На собеседовании проговаривайте рассуждения вслух. Даже если не помните точный метод, покажите, что понимаете принцип — это ценится больше заученного синтаксиса.
Как готовиться
Запомните сложности операций — O(1) для dict/set lookup, O(n) для list. Интервьюеры проверяют, думаете ли вы о производительности.
Разберите разницу между mutable и immutable — это основа для понимания ошибок с копированием и передачей аргументов.
Практикуйтесь в Карьернике — в разделе Python есть задачи на структуры данных и NumPy с подробными разборами.
Параллельно готовьтесь к pandas и SQL — на собеседовании темы пересекаются. Полезно смотреть примеры вопросов по всем направлениям.
FAQ
Нужно ли учить NumPy отдельно или хватит pandas?
Для junior-позиции хватит знать основы: что NumPy лежит под pandas, что такое векторизация и broadcasting. Глубокое знание NumPy нужно для ролей ближе к data science.
Спрашивают ли про алгоритмическую сложность на собеседовании аналитика?
Базовое понимание — да. Разница между O(1) и O(n) для выбора структуры данных. Сложные алгоритмы (деревья, графы) — нет, это для разработчиков.
Как быстро подтянуть базовый Python перед собеседованием?
Начните со структур данных и list comprehensions — это спрашивают в первые 10 минут. Затем переходите к pandas. Советы по подготовке к собеседованию аналитика помогут выстроить план.