Привет! NumPy — это фундаментальная библиотека для научных вычислений в Python. Она лежит в основе Pandas, Matplotlib, Scikit-learn и многих других инструментов Data Science.
В этой статье мы разберём:
- Установку NumPy
- Импорт библиотеки
- Создание первых массивов
- Основные атрибуты массивов
- Что нужно знать перед началом
- Основная часть
- Что такое NumPy
- Установка NumPy
- Создание виртуального окружения
- Импорт NumPy
- Создание первого массива
- Из списка
- Создание массивов с помощью функций
- zeros() — массив из нулей
- Основные атрибуты массивов
- Типы данных в NumPy
- Полный пример
- Задачи для закрепления
- Нюансы и подводные камни
- np.array() копирует данные
- Размерность массива (shape)
- Тип данных (dtype)
- Частые ошибки и как их избежать
- Ошибка 1: Забыл импортировать NumPy
- Ошибка 2: Неправильная размерность
- Ошибка 3: Путаница между списком и массивом
- Шпаргалка
- Заключение
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python
- Базовое понимание списков
Совет: NumPy — это стандарт в мире Data Science. Практически все проекты на Python для работы с данными используют эту библиотеку.
Основная часть
Что такое NumPy
NumPy (Numerical Python) — это библиотека для работы с многомерными массивами и матрицами. Она предоставляет:
- Быстрые и эффективные массивы (
ndarray) - Математические функции для работы с массивами
- Инструменты для линейной алгебры, случайных чисел и многое другое
Совет: Главное преимущество NumPy — скорость. Массивы NumPy обрабатываются в десятки раз быстрее, чем обычные списки Python.
Установка NumPy
Создание виртуального окружения
python -m venv numpy_env
# Windows: numpy_env\Scripts\activate
# macOS/Linux: source numpy_env/bin/activateУстановка через pip
pip install numpyПроверка установки
python -c "import numpy as np; print(np.__version__)"Совет: Ожидаемый вывод — версия NumPy (например,
1.26.4).
Импорт NumPy
import numpy as npСовет: Импорт
numpyкакnp— это стандартное соглашение. Так делают все Python-разработчики.
Создание первого массива
Из списка
import numpy as np
# Из обычного списка
data = [1, 2, 3, 4, 5]
arr = np.array(data)
print(arr) # [1 2 3 4 5]
print(type(arr)) # <class 'numpy.ndarray'>Из вложенного списка (матрица)
# Двумерный массив (матрица)
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)
# [[1 2 3]
# [4 5 6]]Совет: Вложенные списки создают многомерные массивы.
Создание массивов с помощью функций
zeros() — массив из нулей
# Одномерный массив из 5 нулей
zeros = np.zeros(5)
print(zeros) # [0. 0. 0. 0. 0.]
# Двумерный массив 2x3 из нулей
zeros_2d = np.zeros((2, 3))
print(zeros_2d)
# [[0. 0. 0.]
# [0. 0. 0.]]ones() — массив из единиц
ones = np.ones(4)
print(ones) # [1. 1. 1. 1.]
ones_2d = np.ones((3, 2))
print(ones_2d)
# [[1. 1.]
# [1. 1.]
# [1. 1.]]arange() — последовательность чисел
# Как range(), но возвращает массив NumPy
arr = np.arange(10)
print(arr) # [0 1 2 3 4 5 6 7 8 9]
arr = np.arange(2, 10, 2)
print(arr) # [2 4 6 8]linspace() — равномерно распределённые точки
# 5 чисел от 0 до 10 включительно
arr = np.linspace(0, 10, 5)
print(arr) # [0. 2.5 5. 7.5 10. ]Основные атрибуты массивов
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # (2, 3) — 2 строки, 3 столбца
print(arr.size) # 6 — общее количество элементов
print(arr.ndim) # 2 — количество измерений
print(arr.dtype) # int64 — тип данных элементов| Атрибут | Значение |
|---|---|
shape | Размерность массива (кортеж) |
size | Общее количество элементов |
ndim | Количество измерений |
dtype | Тип данных элементов |
Совет:
shape— один из самых важных атрибутов. Он показывает структуру массива.
Типы данных в NumPy
NumPy поддерживает множество типов данных:
# Целые числа
arr_int = np.array([1, 2, 3], dtype=np.int64)
# Числа с плавающей точкой
arr_float = np.array([1, 2, 3], dtype=np.float64)
# Логический тип
arr_bool = np.array([True, False, True])
# Можно указать тип при создании
arr = np.array([1, 2, 3], dtype=float)
print(arr) # [1. 2. 3.]Полный пример
import numpy as np
# Создаём массивы
a = np.array([1, 2, 3, 4, 5])
b = np.zeros(3)
c = np.ones((2, 3))
d = np.arange(10, 20, 2)
# Выводим массивы
print("a:", a)
print("b:", b)
print("c:\n", c)
print("d:", d)
# Атрибуты
print("\nАтрибуты a:")
print("shape:", a.shape)
print("size:", a.size)
print("ndim:", a.ndim)
print("dtype:", a.dtype)Результат:
a: [1 2 3 4 5]
b: [0. 0. 0.]
c:
[[1. 1. 1.]
[1. 1. 1.]]
d: [10 12 14 16 18]
Атрибуты a:
shape: (5,)
size: 5
ndim: 1
dtype: int64Задачи для закрепления
Задача 1. Установи NumPy в виртуальном окружении.
Задача 2. Создай массив из списка [10, 20, 30, 40, 50].
Задача 3. Создай массив из 5 нулей.
Задача 4. Создай массив из чисел от 0 до 20 с шагом 2.
Задача 5. Выведи shape, size, ndim для двумерного массива 3×4.
Ответы:
Задача 1.
python -m venv numpy_env
# Windows: numpy_env\Scripts\activate
# macOS/Linux: source numpy_env/bin/activate
pip install numpyЗадача 2.
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
print(arr)Задача 3.
zeros = np.zeros(5)
print(zeros) # [0. 0. 0. 0. 0.]Задача 4.
arr = np.arange(0, 21, 2)
print(arr) # [0 2 4 6 8 10 12 14 16 18 20]Задача 5.
arr = np.zeros((3, 4))
print("shape:", arr.shape) # (3, 4)
print("size:", arr.size) # 12
print("ndim:", arr.ndim) # 2Нюансы и подводные камни
np.array() копирует данные
np.array() создаёт копию данных, а не ссылку на список.
lst = [1, 2, 3]
arr = np.array(lst)
lst[0] = 99
print(arr) # [1 2 3] — не изменилсяРазмерность массива (shape)
Одномерный массив имеет форму (n,), а не (n, 1).
arr = np.array([1, 2, 3])
print(arr.shape) # (3,)
# Вектор-столбец
col = np.array([[1], [2], [3]])
print(col.shape) # (3, 1)Тип данных (dtype)
NumPy автоматически определяет тип данных. Можно указать вручную.
arr = np.array([1, 2, 3], dtype=np.float32)
print(arr.dtype) # float32Частые ошибки и как их избежать
Ошибка 1: Забыл импортировать NumPy
Всегда импортируй: import numpy as np
Ошибка 2: Неправильная размерность
Проверяй shape с помощью arr.shape.
Ошибка 3: Путаница между списком и массивом
Массивы NumPy имеют методы, которых нет у списков.
Шпаргалка
| Что нужно | Как пишется |
|---|---|
| Импорт NumPy | import numpy as np |
| Создать массив | np.array([1, 2, 3]) |
| Массив из нулей | np.zeros(5) |
| Массив из единиц | np.ones((2, 3)) |
| Последовательность | np.arange(0, 10, 2) |
| Размерность | arr.shape |
| Количество элементов | arr.size |
| Количество измерений | arr.ndim |
| Тип данных | arr.dtype |
Заключение
Сегодня мы:
- Установили NumPy
- Импортировали библиотеку
- Создали первые массивы
- Изучили основные атрибуты








