# 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)
```