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.

Типичные задачи на собеседовании

  1. Найдите уникальные элементы списка, сохранив порядок. Подвох: set() порядок не сохраняет. Решение через dict.fromkeys(lst) или цикл.

  2. Чем arr.copy() отличается от arr2 = arr? Без copy — это ссылка на тот же объект. Изменение одного массива изменит другой.

  3. Что быстрее для поиска элемента: list или set? Set — O(1) vs O(n). На 10 миллионах элементов разница в тысячи раз.

  4. Перемножьте два массива поэлементно и матрично. Поэлементно: a * b. Матрично: a @ b или np.dot(a, b). Классическая проверка на внимательность.

  5. Что вернёт np.mean([[1, 2], [3, 4]], axis=0)? [2.0, 3.0] — среднее по столбцам. axis=1 дало бы среднее по строкам.

Совет: На собеседовании проговаривайте рассуждения вслух. Даже если не помните точный метод, покажите, что понимаете принцип — это ценится больше заученного синтаксиса.

Как готовиться

  1. Запомните сложности операций — O(1) для dict/set lookup, O(n) для list. Интервьюеры проверяют, думаете ли вы о производительности.

  2. Разберите разницу между mutable и immutable — это основа для понимания ошибок с копированием и передачей аргументов.

  3. Практикуйтесь в Карьернике — в разделе Python есть задачи на структуры данных и NumPy с подробными разборами.

  4. Параллельно готовьтесь к pandas и SQL — на собеседовании темы пересекаются. Полезно смотреть примеры вопросов по всем направлениям.

FAQ

Нужно ли учить NumPy отдельно или хватит pandas?

Для junior-позиции хватит знать основы: что NumPy лежит под pandas, что такое векторизация и broadcasting. Глубокое знание NumPy нужно для ролей ближе к data science.

Спрашивают ли про алгоритмическую сложность на собеседовании аналитика?

Базовое понимание — да. Разница между O(1) и O(n) для выбора структуры данных. Сложные алгоритмы (деревья, графы) — нет, это для разработчиков.

Как быстро подтянуть базовый Python перед собеседованием?

Начните со структур данных и list comprehensions — это спрашивают в первые 10 минут. Затем переходите к pandas. Советы по подготовке к собеседованию аналитика помогут выстроить план.