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

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

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

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

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

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

Оглавление

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

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

# Understanding the Syntax of np.repeat()
np.repeat(
   a, 
   repeats, 
   axis=None
)

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

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

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

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

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

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

# Repeating a 1-D Array using np.repeat()
import numpy as np

arr = np.array([1, 2, 3])
print(np.repeat(arr, 2))

# Returns:
# [1 1 2 2 3 3]

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

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

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

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

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

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

# Repeating a 2-D NumPy Array with np.repeat()
import numpy as np

arr = np.array([[1,2],[3,4]])
print(np.repeat(arr, 2))

# Returns:
# [1 1 2 2 3 3 4 4]

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

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

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

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

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

# Repeating Items Column-wise in NumPy
import numpy as np

arr = np.array([[1,2],[3,4]])
print(np.repeat(arr, 2, axis=0))

# Returns:
# [[1 2]
#  [1 2]
#  [3 4]
#  [3 4]]

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

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

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

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

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

# Repeating Items Row-Wise in NumPy
import numpy as np

arr = np.array([[1,2],[3,4]])
print(np.repeat(arr, 2, axis=1))

# Returns:
# [[1 1 2 2]
#  [3 3 4 4]]

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

Заключение

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

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

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

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

  • NumPy Pad: использование np.pad() для заполнения массивов и матриц

  • NumPy где: обрабатывать элементы массива условно

  • np.argmax(): Как использовать NumPy Argmax

  • NumPy linspace: создание равномерно расположенных массивов с помощью np.linspace

Last updated