Let’s explore how to efficiently rotate a matrix in Numpy, where we’ll uncover some clever tricks along the way.

## Rotating by 90 Degrees

Rotating a matrix by 90 degrees using Numpy is straightforward with the dedicated rot90 method:

import numpy as np my_array = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]]) print(f"This is my array: \n{my_array}") rotate_array = np.rot90(my_array) print(f"Array rotated: \n{rotate_array}")

## Rotating by 270 Degrees

To perform a 270-degree rotation (equivalent to three rounds of 90-degree rotation counterclockwise), simply pass 3 as a parameter to the rot90 function:

import numpy as np my_array = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]]) print(f"This is my array: \n{my_array}") rotate_array = np.rot90(my_array, 3) print(f"Array rotated 270 degrees: \n{rotate_array}")

This is 270 degrees rotation but we can also say that this is left rotation because this is how to rotate an matrix left direction.

## Rotating by 180 Degrees

For a 180-degree rotation, use np.rot90(my_array, 2). Note that applying np.rot90(my_array, 4) will not alter the array.

You can also rotate the array over specific axes:

import numpy as np my_array = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]]) print(f"This is my array: \n{my_array}") rotate_array = np.rot90(my_array, axes=(1, 0)) print(f"Array rotated over axes=(1, 0): \n{rotate_array}")

I used np.rot90(my_array, axes=(1, 0)) and this is how it got rotated.

In addition to rotating matrices, you can also flip them horizontally and vertically with Numpy. Here’s how:

## Horizontal Flip

To flip a matrix horizontally, use np.fliplr():

import numpy as np my_array = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]]) print(f"This is my array: \n{my_array}") horizontal_flip = np.fliplr(my_array) print(f"Array after horizontal flip: \n{horizontal_flip}")

## Vertical Flip

For a vertical flip, employ np.flipud():

import numpy as np my_array = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]]) print(f"This is my array: \n{my_array}") vertical_flip = np.flipud(my_array) print(f"Array after vertical flip: \n{vertical_flip}")

These simple Numpy functions allow you to achieve horizontal and vertical flips effortlessly, offering versatile options for manipulating matrices.