Null Space and Nullity are concepts in linear algebra which are used to identify the linear relationship among attributes.

### Null Space:

The null space of any matrix A consists of all the vectors B such that AB = 0 and B is not zero. It can also be thought as the solution obtained from *AB = 0* where A is known matrix of size `m x n`

and B is matrix to be found of size `n x k`

. The size of the null space of the matrix provides us with the number of linear relations among attributes.

**A generalized description:**

Let a matrix be

and there is one vector in the null space of A, i.e,

then B satisfies the given equations,

**The idea –**

1. AB = 0 implies every row of A when multiplied by B goes to zero.

2. Variable values in each sample(represented by a row) behave the same.

3. This helps in identifying the linear relationships in the attributes.

4. Every null space vector corresponds to one linear relationship.

### Nullity:

Nullity can be defined as the number of vectors present in the null space of a given matrix. In other words, the dimension of the null space of the matrix **A** is called the nullity of A. The number of linear relations among the attributes is given by the size of the null space. The null space vectors **B** can be used to identify these linear relationship.

**Rank Nullity Theorem:**

The rank-nullity theorem helps us to relate the nullity of the data matrix to the rank and the number of attributes in the data. The rank-nullity theorem is given by –

Nullity of A + Rank of A =Total number of attributes of A (i.e. total number of columns in A)

**Rank:**

Rank of a matrix refers to the number of linearly independent rows or columns of the matrix.

**Example with proof of rank-nullity theorem:**

Consider the matrix A with attributes {X1, X2, X3} 1 2 0 A = 2 4 0 3 6 1 then, Number of columns in A = 3 R1 and R3 are linearly independent. The rank of the matrixAwhich is the number of non-zero rows in its echelon form are 2. we have, AB = 0 Then we get, b1 + 2*b2 = 0 b3 = 0 The null vector we can get is The number of parameter in the general solution is the dimension of the null space (which is 1 in this example). Thus, the sum of the rank and the nullity ofAis 2 + 1 which is equal to the number of columns of A.

This rank and nullity relationship holds true for any matrix.

**Python Example to find null space of a Matrix:**

`# Sympy is a library in python for ` `# symbolic Mathematics ` `from` `sympy ` `import` `Matrix ` ` ` `# List A ` `A ` `=` `[[` `1` `, ` `2` `, ` `0` `], [` `2` `, ` `4` `, ` `0` `], [` `3` `, ` `6` `, ` `1` `]] ` ` ` `# Matrix A ` `A ` `=` `Matrix(A) ` ` ` `# Null Space of A ` `NullSpace ` `=` `A.nullspace() ` `# Here NullSpace is a list ` ` ` `NullSpace ` `=` `Matrix(NullSpace) ` `# Here NullSpace is a Matrix ` `print` `(` `"Null Space : "` `, NullSpace) ` ` ` `# checking whether NullSpace satisfies the ` `# given condition or not as A * NullSpace = 0 ` `# if NullSpace is null space of A ` `print` `(A ` `*` `NullSpace) ` |

*chevron_right*

*filter_none*

**Output:**

Null Space : Matrix([[-2], [1], [0]]) Matrix([[0], [0], [0]])

**Python Example to find nullity of a Matrix:**

`from` `sympy ` `import` `Matrix ` ` ` `A ` `=` `[[` `1` `, ` `2` `, ` `0` `], [` `2` `, ` `4` `, ` `0` `], [` `3` `, ` `6` `, ` `1` `]] ` ` ` `A ` `=` `Matrix(A) ` ` ` `# Number of Columns ` `NoC ` `=` `A.shape[` `1` `] ` ` ` `# Rank of A ` `rank ` `=` `A.rank() ` ` ` `# Nullity of the Matrix ` `nullity ` `=` `NoC ` `-` `rank ` ` ` `print` `(` `"Nullity : "` `, nullity) ` |

*chevron_right*

*filter_none*

**Output:**

Nullity : 1

## Recommended Posts:

- Eigenspace and Eigenspectrum Values in a Matrix
- Confusion Matrix in Machine Learning
- ML | Matrix plots in Seaborn
- Interquartile Range and Quartile Deviation using NumPy and SciPy
- Need of Data Structures and Algorithms for Deep Learning and Machine Learning
- Supervised and Unsupervised learning
- Underfitting and Overfitting in Machine Learning
- Regression and Classification | Supervised Machine Learning
- Difference between Machine learning and Artificial Intelligence
- Machine Learning and Artificial Intelligence
- Python | How and where to apply Feature Scaling?
- Difference between Supervised and Unsupervised Learning
- Python | Tensorflow nn.relu() and nn.leaky_relu()
- Redundancy and Correlation in Data Mining
- ML | Mathematical explanation of RMSE and R-squared error
- Box plot and Histogram exploration on Iris data
- NLP | Chunking and chinking with RegEx
- NLP | Training a tokenizer and filtering stopwords in a sentence
- NLP | Splitting and Merging Chunks
- Gradient Descent algorithm and its variants

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.