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 и полезные разборы для практики.