NumPy: массивы, операции, broadcasting — туториал

Мы просто и по делу рассказываем про ИИ-инструменты для работы: сравнения, пошаговые гайды, бесплатные альтернативы и реальные сценарии применения. Помогаем выбрать между ChatGPT, Gemini, Claude, локальными моделями и десятками узкоспециализированных сервисов — от дизайна и HR до аналитики и SEO. Меньше хайпа, больше практики и экономии времени каждый день.

numpyndarraybroadcasting

NumPy — базовая библиотека Python для работы с многомерными массивами и быстрыми численными вычислениями. Если вы изучаете Data Science, ML, аналитику или автоматизацию, без NumPy почти никуда.

Что такое массив NumPy

ndarray — это структура данных, похожая на список, но:

  • хранит элементы одного типа
  • занимает меньше памяти
  • работает значительно быстрее списков Python
  • поддерживает векторные операции без циклов

Пример создания массива:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([[1, 2], [3, 4]])

Полезные свойства:

a.shape      # форма массива
a.ndim       # число измерений
a.dtype      # тип данных
a.size       # количество элементов

Как создать массивы

Часто используются готовые генераторы:

np.zeros((2, 3))      # массив из нулей
np.ones((2, 2))       # массив из единиц
np.arange(0, 10, 2)   # [0 2 4 6 8]
np.linspace(0, 1, 5)  # 5 чисел от 0 до 1

Операции с массивами 🚀

Главное преимущество NumPy — поэлементные вычисления:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

a + b     # [5 7 9]
a * b     # [4 10 18]
a ** 2    # [1 4 9]
a.mean()  # среднее
a.sum()   # сумма
a.max()   # максимум

Сравнение тоже работает поэлементно:

a > 1     # [False True True]

Индексация и срезы

Как и в списках, можно брать элементы и диапазоны:

a[0]
a[1:]
b[0, 1]

Фильтрация по условию:

a[a > 1]   # [2 3]

Изменение формы массива

Это важно для подготовки данных:

a = np.array([1, 2, 3, 4, 5, 6])
a.reshape(2, 3)

Также полезно:

a.flatten()   # делает массив одномерным
a.T           # транспонирование

Что такое broadcasting 🧠

Broadcasting позволяет NumPy выполнять операции над массивами разной формы без ручного дублирования данных.

Пример:

a = np.array([[1, 2, 3],
              [4, 5, 6]])
b = np.array([10, 20, 30])

a + b

Результат:

[[11 22 33]
 [14 25 36]]

Почему это работает? NumPy “растягивает” b по строкам, чтобы формы стали совместимыми.

Правила broadcasting

Размерности сравниваются справа налево. Они совместимы, если:

  • равны
  • или одна из них равна 1

Пример совместимых форм:

  • (2, 3) и (3,)
  • (4, 1) и (4, 5)
  • (1, 3) и (5, 3)

Если формы несовместимы, будет ошибка ValueError.

Почему NumPy так популярен 📊

  • ускоряет вычисления
  • делает код короче и чище
  • используется в pandas, scikit-learn, TensorFlow и других инструментах
  • идеально подходит для математики, матриц, статистики и обработки данных

Что важно запомнить

  • ndarray — основа NumPy
  • операции выполняются поэлементно
  • reshape, срезы и маски нужны постоянно
  • broadcasting экономит память и избавляет от лишних циклов

👀 Ниже по ленте — мягко рекомендую посмотреть подборку каналов про IT: там Python, аналитика, backend, ML и полезные разборы для практики.

🗣 Подборки каналов
🧠 Каталог ботов и приложений
🗺 Навигация

Читайте так же