Использование NumPy Tile для Расположения Массивов

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

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

  • Что делает функция tile() NumPy

  • Как расположить массивы NumPy горизонтально (по столбцам)

  • Как расположить массивы NumPy вертикально (по строкам)

  • Как упорядочить многомерные массивы с помощью tile() NumPy

Оглавление

Синтаксис функции tile() NumPy

Функция tile() в библиотеке Numpy принимает массив A и возвращает массив, повторенный заданное количество раз. Функцию можно использовать достаточно просто, передавая целое число для последовательного повторения. Однако можно также создавать многомерные повторения массивов, используя двумерные или даже более высокие измерения.

Давайте посмотрим, как устроена функция:

# Understanding the np.tile() Function
np.tile(
    A,      # The input array
    reps    # Num of repetitions along each axis
)

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

Параметр reps= немного сложнее. Это потому, что параметр reps= может быть использован для изменения размеров массива. Аргумент, который вы передаете в параметр reps, это структура данных, похожая на массив, которая определяет форму, в которой вы хотите размножить массив.

Например, когда вы передаёте кортеж (1, 2), NumPy будет повторять исходный массив один раз вдоль первого измерения и дважды вдоль второго измерения.

Давайте рассмотрим, как можно использовать функцию tile() из NumPy!

Как расположить массивы NumPy по горизонтали с помощью tile()

В этом разделе вы узнаете, как использовать функцию tile() из NumPy для повторения элементов по горизонтали. Давайте сначала создадим массив NumPy, а затем посмотрим, как мы можем передать его в функцию tile(), чтобы повторить его. В нашем примере мы повторим пример 3 раза:

# Repeating a NumPy Array Horizontally with tile()
import numpy as np

array1 = np.array([1,2,3])
tiled = np.tile(array1, 3)

print(tiled)

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

Как видно из примера выше, возвращается одномерный массив. Обратите внимание, что размерность не изменилась! Мы не повторили массив три раза, а скорее элементы в массиве

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

Как расположить массивы NumPy по вертикали с помощью tile()

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

Чтобы сделать это, нам нужно передать кортеж с двумя размерностями. Представьте, что мы хотели бы повторить массив три раза по столбцам. В этом случае мы могли бы написать:

# Repeating a NumPy Array Vertically with tile()
import numpy as np

array1 = np.array([1,2,3])
tiled = np.tile(array1, (3,1))

print(tiled)

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

Здесь мы передали кортеж (3, 1), что означает, что массив повторяется три раза вниз и только один раз в сторону.

Давайте попробуем что-то новое, где мы можем повторять массив как по горизонтали, так и по вертикали. Давайте передадим кортеж (3, 2), что означает, что массив должен повторяться три раза вниз и два раза по горизонтали:

# Repeating an Array Both Across and Down
import numpy as np

array1 = np.array([1,2,3])
tiled = np.tile(array1, (3,2))

print(tiled)

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

Как упорядочить многомерные массивы NumPy с помощью tile()

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

Давайте рассмотрим пример массива 2×2, который мы будем повторять два раза в каждом направлении:

# Arranging Multidimensional Arrays with .tile()
import numpy as np

array1 = np.array([[1,2], [3,4]])
tiled = np.tile(array1, (3,2))

print(tiled)

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

Как повторить списки и кортежи Python с помощью плитки tile()

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

# Tiling a Tuple with np.tile()
import numpy as np

tuple1 = (1,2,3)
tiled = np.tile(tuple1, (3,2))

print(tiled)

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

Хотя мы передали кортеж, функция все равно возвращает массив NumPy.

Заключение

В этом уроке вы научились использовать функцию tile в NumPy. Вы узнали, как синтаксис функции позволяет передавать в неё структуру, похожую на массив, и паттерн, в котором вы хотите организовать данные. Затем вы научились размещать массивы горизонтально и вертикально. Вы также научились работать с многомерными массивами и использовать списки и кортежи.

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

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

  • NumPy для науки о данных в Python

  • Генерация случайных чисел в Python

  • Numpy нормальное (гауссово) распределение (Numpy Random Normal)

  • Скалярное произведение Numpy: вычисление скалярного произведения Python

Last updated