To transpose a matrix with NumPy, call the transpose() method.
For instance:
import numpy as np A = np.array([[1, 2], [3, 4]]) A_T = A.transpose() print(A_T)
Output:
[[1 3] [2 4]]
If you are in a hurry, I’m sure this quick answer is enough.
To learn more about matrix transpose, keep on reading.
What Is the Transpose of a Matrix
The transpose of a matrix is another matrix where the matrix is flipped along its diagonal axis. This means each row of the matrix turns into a column in the result matrix.
Transpose is a really common operation performed on a matrix.
Here is an illustration of a transpose of a 3 x 3 matrix.

Notice that the matrix does not need to be a square matrix (such as a 3 x 3) to be transposed. You can just as well transpose a 2 x 4 matrix or a 5 x 2 matrix.
Next, let’s implement a matrix transpose algorithm with Python.
Matrix Transpose Algorithm
Transposing a matrix is easy to describe for someone with paper and pen.
Turn each row into a column.
However, when giving instructions to a computer, it is not that easy.
A computer program that transposes a matrix needs to loop through the matrix row by row, pick each element, and put it into a slot in the result array.
The general description of a matrix transpose algorithm as pseudocode is as follows:
- Specify a 2D array A[M][N], that represents a M x N matrix.
- Declare another 2D array T to store the result of the transpose with dimensions N x M (reversed compared to the original array.)
- Loop through the original 2D array and convert its rows to the columns of matrix T.
- Declare 2 variables i and j.
- Set i, j = 0
- Repeat until i < M
- Set j = 0
- Repeat until j < N
- T[i][j] = A[j][i]
- j = j + 1
- i = i + 1
- Show the result matrix T.
With this information, let’s implement the matrix transpose algorithm in Python.
# Declare the matrix
A = [
[9, 7],
[4, 5],
[3, 8]
]
# Set up the result matrix
T = [
[0, 0, 0],
[0, 0, 0]
]
# Know the dimensions in A
M = len(A[0])
N = len(A)
# Loop through A
i = 0
while i < M:
j = 0
while j < N:
# Transpose each element
T[i][j] = A[j][i]
j = j + 1
i = i + 1
# Show the result
for row in T:
print(row)
Output:
[9, 4, 3] [7, 5, 8]
Now that you understand what is a matrix transpose and how to create a Python program to find one, let’s see how to do it more easily.
How to Transpose a Matrix with NumPy
In NumPy, matrices are commonly expressed as 2D arrays, where each inner array represents one row of the matrix.
However, transposing a matrix is such a common operation, that a NumPy array has a built-in function for it.
This function is called the numpy.matrix.transpose.
It can be called on a NumPy array.
For instance, let’s transpose a 2 x 3 matrix:
import numpy as np
A = np.array(
[
[9, 7],
[4, 5],
[3, 8]
]
)
T = A.transpose()
print(T)
Output:
[[9 4 3] [7 5 8]]
Conclusion
Today you learned how to transpose a matrix in Python by:
- Implementing your own matrix transpose algorithm
- Using a built-in transpose function in NumPy library.