Build a block matrix in Numpy



To build a block of matrix, use the numpy.block() method in Python Numpy. Blocks in the innermost lists are concatenated along the last dimension (-1), then these are concatenated along the secondlast dimension (-2), and so on until the outermost list is reached.

Blocks can be of any dimension, but will not be broadcasted using the normal rules. Instead, leading axes of size 1 are inserted, to make block.ndim the same for all blocks. This is primarily useful for working with scalars, and means that code like np.block([v, 1]) is valid, where v.ndim == 1.

Steps

At first, import the required library −

import numpy as np

Creating two numpy arrays using the array() method. We have inserted elements of int type −

arr1 = np.eye(2) * 2
arr2 = np.eye(3) * 2

Display the arrays −

print("Array 1...
", arr1) print("
Array 2...
", arr2)

Get the type of the arrays −

print("
Our Array 1 type...
", arr1.dtype) print("
Our Array 2 type...
", arr2.dtype)

Get the dimensions of the Arrays −

print("
Our Array 1 Dimensions...
",arr1.ndim) print("
Our Array 2 Dimensions...
",arr2.ndim)

Get the shape of the Arrays −

print("
Our Array 1 Shape...
",arr1.shape) print("
Our Array 2 Shape...
",arr2.shape)

To build a block of matrix, use the numpy.block() method in Python Numpy −

print("
Result...
",np.block([[arr1,np.zeros((2, 3))], [np.ones((3, 2)), arr2]]))

Example

import numpy as np

# Creating two numpy arrays using the array() method
# We have inserted elements of int type
arr1 = np.eye(2) * 2
arr2 = np.eye(3) * 2

# Display the arrays
print("Array 1...
", arr1) print("
Array 2...
", arr2) # Get the type of the arrays print("
Our Array 1 type...
", arr1.dtype) print("
Our Array 2 type...
", arr2.dtype) # Get the dimensions of the Arrays print("
Our Array 1 Dimensions...
",arr1.ndim) print("
Our Array 2 Dimensions...
",arr2.ndim) # Get the shape of the Arrays print("
Our Array 1 Shape...
",arr1.shape) print("
Our Array 2 Shape...
",arr2.shape) # To build a block of matrix, use the numpy.block() method in Python Numpy print("
Result...
",np.block([[arr1,np.zeros((2, 3))], [np.ones((3, 2)), arr2]]))

Output

Array 1...
[[2. 0.]
[0. 2.]]

Array 2...
[[2. 0. 0.]
[0. 2. 0.]
[0. 0. 2.]]

Our Array 1 type...
float64

Our Array 2 type...
float64

Our Array 1 Dimensions...
2

Our Array 2 Dimensions...
2

Our Array 1 Shape...
(2, 2)

Our Array 2 Shape...
(3, 3)

Result...
[[2. 0. 0. 0. 0.]
[0. 2. 0. 0. 0.]
[1. 1. 2. 0. 0.]
[1. 1. 0. 2. 0.]
[1. 1. 0. 0. 2.]]

Advertisements