NumPy: вопросы на собеседовании
Вопросы и ответы по NumPy: подготовка, примеры и типичные ошибки.
Проверьте себя по NumPy: 5 вопросов, ~10 минут
Вопросов: 40. Частые идут первыми, сложные возвращаются на повторение.
- Как работает broadcasting в NumPy? Опишите правила и приведите пример.Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- В чём разница между
np.copy()(глубокое копирование) и представлением (view, поверхностное копирование) в NumPy?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost - Как расположение памяти (C-order vs Fortran-order) влияет на производительность массивов NumPy?Senior· спрашивают почти всегда
- В каких data/AI-задачах NumPy даёт реальный выигрыш, а где лучше выбрать другой инструмент или более простой pipeline?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое NumPy и почему он быстрее нативных списков Python для числовых вычислений?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое универсальные функции (ufuncs) в NumPy и почему они эффективны?Middle· спрашивают почти всегда
- Как работают
np.argmax(),np.argmin()иnp.argsort()и когда они полезны?Junior· полный разбор — Jobs/Boost - Как использовать булево индексирование для фильтрации массивов в NumPy?Junior
- Что такое
np.clip()и в каких сценариях ML-пайплайнов он часто используется?Middle· полный разбор — Jobs/Boost - Что такое fancy indexing в NumPy и чем он отличается от индексирования срезами?Middle
- Что такое
np.linalgи какие операции линейной алгебры он предоставляет (inv,eig,svd,solve)?Middle· полный разбор — Jobs/Boost - Как выполнять матричное умножение в NumPy —
@,np.dot()иnp.matmul()— в чём разница?Middle· полный разбор — Jobs/Boost - Каковы атрибуты
ndarray:shape,dtype,ndim,sizeиstrides?Junior - В чём разница между массивом NumPy и списком Python?Junior· полный разбор — Jobs/Boost
- Как проверять корректность решения на NumPy, а не только успешное выполнение кода?Senior
- Представьте, pipeline на NumPy даёт хорошие результаты в dev, но плохо работает на новых данных. Как вы будете разбираться?Senior· полный разбор — Jobs/Boost
- Какие ключевые абстракции NumPy нужно понимать, чтобы не получать формально рабочие, но неверные результаты?Middle
- Как сравнить NumPy с альтернативами по качеству, скорости экспериментов, масштабированию, воспроизводимости и production-интеграции?Senior· полный разбор — Jobs/Boost
- Какие риски есть у NumPy: data leakage, неверная оценка качества, memory usage, latency, cost, drift или observability?Senior· полный разбор — Jobs/Boost
- Какие ошибки делают команды, когда переносят notebook/prototype-подход на production data/AI pipeline?Senior· полный разбор — Jobs/Boost
- Как работает
np.pad()и какие режимы дополнения доступны?Middle - В чём разница между
np.random.seed()иnp.random.default_rng()(новый Generator API)?Middle· полный разбор — Jobs/Boost - В чём разница между
ravel()иflatten()— когда каждый из них возвращает view, а когда копию?Middle - Как загружать и сохранять массивы NumPy с помощью
np.save(),np.load()иnp.savez()?Middle· полный разбор — Jobs/Boost - Что такое
np.unique()и что делают параметрыreturn_countsиreturn_index?Middle· полный разбор — Jobs/Boost - Как работает
np.where()и каковы его типичные сценарии использования?Junior - Чем отличаются
np.concatenate(),np.vstack(),np.hstack()иnp.stack()?Junior - Что такое
np.einsum()и когда его следует предпочесть стандартным операциям над массивами?Senior· полный разбор — Jobs/Boost - В чём разница между
np.float32иnp.float64и когда выбор dtype имеет значение?Senior· полный разбор — Jobs/Boost - Как обрабатывать NaN-значения в NumPy —
np.nan,np.isnan(),np.nanmean(),np.nansum()?Junior· полный разбор — Jobs/Boost - Какие ошибки вызывает dtype overflow и неявное приведение типов?Middle· полный разбор — Jobs/Boost
- Расскажите о случае, когда вы использовали NumPy для pipeline, evaluation, optimization, deployment или debugging.Middle
- Как strides и memory layout (C-contiguous/F-contiguous) влияют на производительность?Middle
- Как эффективно вычислять попарные расстояния между строками двух массивов в NumPy?Senior· полный разбор — Jobs/Boost
- Как NumPy и тензоры PyTorch взаимодействуют друг с другом и каковы нюансы совместного использования памяти между ними?Senior· полный разбор — Jobs/Boost
- Как использовать
np.vectorize()и каковы его ограничения производительности по сравнению с настоящими ufuncs?Senior· полный разбор — Jobs/Boost - Как использовать
np.apply_along_axis()и когда это уместно по сравнению с векторизованными операциями?Middle - Что такое манипуляция stride в NumPy и как работает
np.lib.stride_tricks.as_strided?Senior· полный разбор — Jobs/Boost - Что такое
np.meshgrid()и для чего он обычно используется?Middle· полный разбор — Jobs/Boost - Что такое структурированные массивы (structured arrays) в NumPy и когда их следует использовать?Middle· полный разбор — Jobs/Boost