numpy tile vs repeat
In this post, we will learn what is numpy tile and what’s the difference between numpy tiles and repeat
Numpy tile - numpy.tile()
The numpy tile function is used for repeating an array by any number of times in any dimension of the array
Here is the formula for using numpy tile:
numpy.tile(A, reps)
It repeats the array A by number of times given by reps parameter. If reps has length d, the result will have dimension of max(d, A.ndim). Let’s understand this with the help of examples below
Using Numpy tile in one dimension array
Let’s create a 1D array and we want to repeat this array two times along the axis=0
import numpy as np
A = np.array([1, 2, 3, 4, 5])
Pass the reps parameter as 2 and check the result
np.tile(A, 2)
# Out
array([1, 2, 3, 4, 5, 1, 2, 3, 4, 5])
So you can see here the output is a 1D array and the elements of original array is repeated twice
Using Numpy tile to build a 2D array
Let’s use the same 1D array and we will build a 2D array out of it by repeating this array(A), reps param in tile function is given as (5,2) which means repeat the array 5 times along axis=0 and 2 times along the axis=1
np.tile(A, (5, 2))
Output:
In the above output you can see the initial array(A) is repeated 5 times along the axis=0 and the array is repeated 2 times along the axis=1
Using Numpy tile to build a 3D array
Let’s use the same 1D array and we will build a 3D array out of it by repeating this array(A), reps param in tile function is given as (2, 5, 3) which means repeat the array 2 times along axis=0, 5 times along the axis=1 and 3 times along axis=2
np.tile(A, (2, 5, 3))
Output:
In the above output you can see the initial array(A) is repeated along each of dimensions as mentioned in the passed reps parameter value
Numpy repeat - numpy.repeat()
Unlike numpy tile, numpy repeat helps to repeat the elements of an array
Here is the formula for the numpy repeat:
np.repeat(a, repeats, axis=None)
where,
a: Input array
repeats: the number of repetitions for each element and broadcasted to fit the shape of the given axis
axis: Along which axis to repeat values
numpy repeat 1D array
First create a 1D array
a = np.array([1, 2, 3, 4, 5])
Output:
array([1, 2, 3, 4, 5])
Repeat each element of the array 4 times
np.repeat(a, 4)
Output:
array([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5])
numpy repeat 2D array
first create a 2D array
x = np.array([[1,2],[3,4]])
Output:
array([[1, 2],
[3, 4]])
if no axis is mentioned then a flattened array is returned, lets understand this with an example.
np.repeat(x, 2)
Output:
array([1, 1, 2, 2, 3, 3, 4, 4])
Let’s repeat the element of array(x) along the axis 1, 2 times. we will pass the axis parameter value as 1
np.repeat(x, 2, axis =1 )
Output:
array([[1, 1, 2, 2],
[3, 3, 4, 4]])
So you can see, each element is repeated 2 times along the axis=1 in the 2D array(x)
numpy repeat elements of 2D array along axis=0 and axis=1
we will repeat the elements of a 2D array(x) along the axis=0 and pass the repeats parameter as [3, 4] which means repeate the first array 3 times and 2nd array 4 times
np.repeat(x, [3, 4], axis=0)
Next, we will repeat the elements of a 2D array(x) along the axis=1 and pass the repeats parameter as [3, 4] which means repeate the first elements in the array 3 times and 2nd element in array 4 times
np.repeat(x, [3, 4], axis=0)