Как создать двумерный массив в Python с использованием NumPy?

Двумерные массивы жизненно важны в научных вычислениях, машинном обучении и аналитике данных. 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 рекомендуется ознакомиться с её обширной документацией и примерами на официальном сайте библиотеки.

Полезные ссылки и ресурсы


Добавить комментарий