Двумерные массивы жизненно важны в научных вычислениях, машинном обучении и аналитике данных. NumPy — это мощная библиотека для работы с массивами и матрицами. Она предоставляет огромные возможности для математических операций и значительно упрощает манипуляции с данными.
Что такое двумерный массив?
Двумерный массив можно определить как коллекцию данных, организованных в виде таблицы с строками и столбцами. Применения двумерных массивов многообразны: от хранения изображений в виде пикселей до работы с таблицами данных и матричных вычислений.
Пример применения
Для примера, в контексте интернет-маркетинга, двумерный массив может использоваться для хранения данных о ежедневных кликах и конверсиях по различным рекламным кампаниям:
day_wise_clicks_conversions = [
[123, 5], # День 1: 123 клика, 5 конверсий
[150, 8], # День 2
[200, 10], # День 3
]
Установка библиотеки NumPy
Устанавливаем NumPy через pip
Для установки NumPy, используйте команду pip:
pip install numpy
Проверка установки
После установки, давайте проверим её успешность:
import numpy as np
print(np.__version__) # должен показать версию установленного NumPy
Создание двумерного массива с помощью NumPy
Создание массива из списка
Одним из самых простых способов создания двумерного массива является использование вложенных списков. Рассмотрим пример:
import numpy as np
from typing import List
def create_array_from_list(data: List[List[int]]) -> np.ndarray:
"""
Создает двумерный массив NumPy из вложенного списка.
Args:
data (List[List[int]]): Вложенный список данных.
Returns:
np.ndarray: Двумерный массив NumPy.
"""
array = np.array(data)
return array
data = [
[1, 2, 3],
[4, 5, 6]
]
array = create_array_from_list(data)
print(array)
Создание массива с помощью функции zeros
Иногда требуется создать массив заполненный нулями определенного размера. Эту задачу решает функция np.zeros():
def create_zero_array(rows: int, cols: int) -> np.ndarray:
"""
Создает двумерный массив, заполненный нулями.
Args:
rows (int): Количество строк.
cols (int): Количество столбцов.
Returns:
np.ndarray: Двумерный массив, заполненный нулями.
"""
zero_array = np.zeros((rows, cols))
return zero_array
zero_array = create_zero_array(3, 4)
print(zero_array)
Создание случайного массива
Создание массива со случайными числами может быть полезным для тестирования и моделирования различных процессов:
def create_random_array(rows: int, cols: int) -> np.ndarray:
"""
Создает двумерный массив со случайными числами.
Args:
rows (int): Количество строк.
cols (int): Количество столбцов.
Returns:
np.ndarray: Двумерный массив со случайными числами.
"""
random_array = np.random.rand(rows, cols)
return random_array
random_array = create_random_array(3, 3)
print(random_array)
Манипуляции с двумерными массивами
Срезы и индексация
NumPy предоставляет мощные инструменты для работы с срезами и индексацией:
def extract_subarray(arr: np.ndarray, row_start: int, row_end: int, col_start: int, col_end: int) -> np.ndarray:
"""
Извлекает подмассив из заданного массива.
Args:
arr (np.ndarray): Исходный массив.
row_start (int): Начальный индекс строки.
row_end (int): Конечный индекс строки.
col_start (int): Начальный индекс столбца.
col_end (int): Конечный индекс столбца.
Returns:
np.ndarray: Подмассив.
"""
subarray = arr[row_start:row_end, col_start:col_end]
return subarray
array = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
subarray = extract_subarray(array, 1, 3, 1, 3)
print(subarray)
Операции над массивами
Арифметические операции над двумерными массивами также просты:
def add_arrays(arr1: np.ndarray, arr2: np.ndarray) -> np.ndarray:
"""
Складывает два двумерных массива.
Args:
arr1 (np.ndarray): Первый массив.
arr2 (np.ndarray): Второй массив.
Returns:
np.ndarray: Сумма массивов.
"""
return np.add(arr1, arr2)
arr1 = np.array([
[1, 2, 3],
[4, 5, 6]
])
arr2 = np.array([
[7, 8, 9],
[10, 11, 12]
])
sum_array = add_arrays(arr1, arr2)
print(sum_array)
Визуализация данных из двумерных массивов
Использование Matplotlib
NumPy с Matplotlib позволяет легко визуализировать данные:
import matplotlib.pyplot as plt
def plot_array(arr: np.ndarray) -> None:
"""
Строит график данных из двумерного массива.
Args:
arr (np.ndarray): Двумерный массив данных.
"""
plt.imshow(arr, cmap='viridis', interpolation='none')
plt.colorbar()
plt.show()
data = np.random.rand(10, 10)
plot_array(data)
Заключение
В этой статье мы рассмотрели различные методы создания и манипуляции двумерными массивами с помощью библиотеки NumPy. Мы узнали, как устанавливать библиотеку, создавать массивы из списков, заполнять массивы нулями и случайными числами, а также просматривать и изменять их содержимое. Наконец, мы визуализировали данные с помощью практически популярной библиотеки Matplotlib.
Для дальнейшего изучения NumPy рекомендуется ознакомиться с её обширной документацией и примерами на официальном сайте библиотеки.
Полезные ссылки и ресурсы
- Официальная документация NumPy
- Видеоуроки по NumPy на YouTube
- Блог Habrahabr о NumPy