Основы импорта и использования библиотеки NumPy

Давайте подробно рассмотрим основы импорта и использования библиотеки NumPy. Это будет полезно для тех, кто только начинает работать с этой библиотекой, а также для тех, кто хочет освежить свои знания.

Установка библиотеки

Для использования библиотеки NumPy вам сначала нужно установить её, если она еще не установлена. Это можно сделать с помощью pip:

pip install numpy

Импорт библиотеки

После установки библиотеки вы можете импортировать её в вашем Python-коде. Обычно NumPy импортируется под псевдонимом np, что упрощает вызов её функций:

import numpy as np

Основные операции и функции

Создание массивов

NumPy предоставляет различные способы создания массивов:

# Одномерный массив
a = np.array([1, 2, 3, 4, 5])

# Двумерный массив (матрица)
b = np.array([[1, 2, 3], [4, 5, 6]])

# Массивы с нулями, единицами и единичная матрица
c = np.zeros((2, 3))    # Матрица 2x3 из нулей
d = np.ones((3, 4))     # Матрица 3x4 из единиц
e = np.eye(3)           # Единичная матрица 3x3

# Массивы от 0 до 9 и равномерное распределение
f = np.arange(10)       # Массив от 0 до 9
g = np.linspace(0, 1, 5)  # Массив от 0 до 1 с 5 равномерно распределенными элементами

Арифметические операции

Арифметические операции применяются поэлементно к массивам:

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

# Сложение
c = a + b               # array([ 6,  8, 10, 12])

# Вычитание
d = a - b               # array([-4, -4, -4, -4])

# Умножение
e = a * b               # array([ 5, 12, 21, 32])

# Деление
f = a / b               # array([0.2       , 0.33333333, 0.42857143, 0.5       ])

# Возведение в степень
g = a ** 2              # array([ 1,  4,  9, 16])

Универсальные функции (ufunc)

Универсальные функции применяются поэлементно и поддерживают векторизацию:

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

# Синус
sin_a = np.sin(a)      # array([0.84147098, 0.90929743, 0.14112001, -0.7568025 ])

# Экспонента
exp_a = np.exp(a)      # array([ 2.71828183,  7.3890561 , 20.08553692, 54.59815003])

# Логарифм
log_a = np.log(a)      # array([0.        , 0.69314718, 1.09861229, 1.38629436])

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

Индексация и срезы позволяют извлекать и изменять элементы массива:

a = np.array([10, 20, 30, 40, 50])

# Доступ к элементу
element = a[2]          # 30

# Срезы
slice_a = a[1:4]       # array([20, 30, 40])

# Двумерные массивы
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Доступ к элементу
element = b[1, 2]      # 6

# Вся вторая строка
row = b[1, :]          # array([4, 5, 6])

# Весь третий столбец
column = b[:, 2]       # array([3, 6, 9])

Операции над многомерными массивами

NumPy поддерживает различные операции над многомерными массивами:

# Создание матриц
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# Сложение матриц
C = A + B               # array([[ 6,  8], [10, 12]])

# Умножение матриц
D = A @ B               # array([[19, 22], [43, 50]])

# Транспонирование
E = A.T                 # array([[1, 3], [2, 4]])

# Сложение по осям
F = np.sum(A, axis=0)   # array([4, 6])  # Сумма по строкам (по каждому столбцу)
G = np.sum(A, axis=1)   # array([3, 7])  # Сумма по столбцам (по каждой строке)

Статистические функции

NumPy также предоставляет функции для вычисления различных статистических показателей:

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

# Среднее значение
mean_a = np.mean(a)     # 3.0

# Медиана
median_a = np.median(a) # 3.0

# Стандартное отклонение
std_a = np.std(a)       # 1.4142135623730951

Работа с случайными числами

NumPy также предоставляет возможности для генерации случайных чисел:

# Создание генератора случайных чисел
rng = np.random.default_rng()

# Случайные числа от 0 до 1
random_numbers = rng.random(5)    # array([0.12345678, 0.23456789, 0.3456789 , 0.45678901, 0.56789012])

# Случайные целые числа
random_integers = rng.integers(10, size=5)  # array([1, 7, 3, 8, 2])

Заключение

NumPy предоставляет широкий набор инструментов для работы с массивами и матрицами, выполнения арифметических операций и статистических расчетов. Она является основой для многих научных вычислений в Python благодаря своей эффективности и гибкости. Ознакомившись с этими основами, вы сможете более эффективно использовать NumPy для ваших задач в анализе данных и вычислениях.

Last updated