Функция np.repeat() NumPy: Повторение массивов NumPy

В этом руководстве вы научитесь использовать функцию повторения NumPy - np.repeat(). Функция np.repeat() используется для повторения массивов и предоставляет значительные возможности для настройки того, как массивы повторяются. Умение работать с массивами NumPy является важным навыком для анализа данных, науки о данных и глубокого обучения.

К концу этого руководства вы узнаете:

  • Как работает функция повтора NumPy

  • Как повторять массивы NumPy по строкам и по столбцам

  • Как повторить многомерные данные в NumPy

Оглавление

Понимание функции повтора NumPy

Перед тем, как глубоко погрузиться в работу функции повторения NumPy, важно понять синтаксис этой функции. Блок кода ниже показывает синтаксис функции и все доступные параметры:

# Понимание синтаксиса функции np.repeat()
np.repeat(
    # Аргумент, который будет повторен
   a, 
    # Количество раз, на которое аргумент должен быть повторен
   repeats, 
    # Набор индексов, по которым повторение будет производиться (по умолчанию - все измерения)
   axis=None
)

Мы видим из приведенного выше блока кода, что функция имеет три различных параметра. Давайте посмотрим, что делает каждый из них:

  • a= принимает входной массив

  • repeats= определяет количество повторений для каждого элемента

  • axis= определяет ось, вдоль которой будут повторяться значения. Если None, используется плоский массив в качестве входных данных и возвращается плоский массив.

Повторение одномерного массива NumPy

Используя функцию повторения repeat() в NumPy на одномерном массиве, значения в этом массиве повторяются. То, что может вас удивить, так это то, что повторение происходит поэлементно. Чтобы лучше понять, как это выглядит, давайте рассмотрим пример:

# Повторение одномерного массива при помощи np.repeat()
import numpy as np

arr = np.array([1, 2, 3]) # Одномерный массив из трех элементов
print(np.repeat(arr, 2)) # Вывод повторенного массива

# Возвращает:
# [1 1 2 2 3 3]

В приведенном выше примере мы передаем одномерный массив NumPy в функцию repeat(). Также мы указываем функции повторить каждый элемент дважды.

Вместо того, чтобы возвращать весь массив один за другим, каждый элемент повторяется последовательно. В следующем разделе вы узнаете, как повторять элементы в двумерном массиве.

Повторение двумерного массива NumPy

В этом разделе вы научитесь повторять элементы двумерного массива. В предыдущем разделе вы узнали, что элементы повторяются поэлементно, а не по массивам.

В этом разделе вы узнаете, что по умолчанию функция будет возвращать плоский массив. Это означает, что элементы сначала преобразуются в одномерный массив, а затем повторяются.

Давайте рассмотрим пример для лучшего понимания:

# Повторение двумерного NumPy-массива при помощи np.repeat()
import numpy as np

arr = np.array([[1,2],[3,4]]) # Двумерный массив из двух строк и двух столбцов
print(np.repeat(arr, 2)) # Вывод повторенного массива

# Возвращает:
# [1 1 2 2 3 3 4 4]

В приведенном выше примере видно, что сначала значения преобразуются в одномерный массив, а затем повторяются. Это происходит потому, что параметр axis по умолчанию установлен в

В следующем разделе вы узнаете, как настроить поведение для повторения элементов по столбцам.

Повторение массива NumPy построчно

Во многих случаях вам может не потребоваться повторять многомерный массив в его уплощенной версии. Вы можете настроить это поведение, изменив параметр axis

В NumPy, ось с индексом 0 представляет строки. Давайте передадим 0 в параметр axis и посмотрим, как это изменит поведение:

# Повторение элементов по столбцам в NumPy
import numpy as np

arr = np.array([[1,2],[3,4]]) # Двумерный массив из двух строк и двух столбцов
print(np.repeat(arr, 2, axis=0)) # Вывод повторенного массива с повторением по строкам (по умолчанию)

# Возвращает:
# [[1 2]
# [3 4]]
# 
# Это не то, что ожидалось. Правильный результат будет ниже.

В приведенном выше примере мы передали тот же двумерный массив и повторили его дважды вдоль нулевой оси. В этом случае каждая "строка" повторяется.

В следующем разделе вы узнаете, как повторять элементы в столбцах.

Повторение массива NumPy по столбцам

В предыдущем разделе вы научились повторять строки массива NumPy с помощью функции np.repeat(). В этом разделе вы узнаете, как повторять элементы по столбцам, то есть каждый "столбец" повторяется.

Давайте посмотрим, как мы можем изменить поведение параметра axis, чтобы достичь этого:

# Повторение элементов по строкам в NumPy
import numpy as np

arr = np.array([[1,2],[3,4]]) # Двумерный массив из двух строк и двух столбцов
print(np.repeat(arr, 2, axis=1)) # Вывод повторенного массива с повторением по столбцам

# Возвращает:
# [[1 1 2 2]
# [3 3 4 4]]

Здесь мы видим, что каждый «столбец» массива повторяется.

Заключение

В этом учебном пособии вы научились использовать функцию повторения NumPy для повторения элементов в массиве NumPy. Функция позволяет повторять элементы в массиве поэлементно, что может удивить пользователей функции. Сначала вы узнали, какие параметры доступны в функции и как работать с одномерными массивами.

Затем вы научились использовать функцию с двумерными массивами. По умолчанию функция выпрямляет массив и повторяет элементы. Модифицируя поведение функции, можно использовать функцию для повторения элементов по строкам или столбцам.

Дополнительные ресурсы

Чтобы узнать больше о схожих темах, ознакомьтесь с нижеприведенными учебными материалами:

Last updated