Установка NumPy и первый массив

Установка NumPy и первый массив NumPy

Привет! NumPy — это фундаментальная библиотека для научных вычислений в Python. Она лежит в основе Pandas, Matplotlib, Scikit-learn и многих других инструментов Data Science.

В этой статье мы разберём:

  • Установку NumPy
  • Импорт библиотеки
  • Создание первых массивов
  • Основные атрибуты массивов

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный 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. Выведи shapesizendim для двумерного массива 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 имеют методы, которых нет у списков.

Шпаргалка

Что нужноКак пишется
Импорт NumPyimport 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
  • Импортировали библиотеку
  • Создали первые массивы
  • Изучили основные атрибуты

КВИЗ

Что дальше?

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×