diff --git a/contrib/numpy/index.md b/contrib/numpy/index.md
index b38006c..6ee2e9d 100644
--- a/contrib/numpy/index.md
+++ b/contrib/numpy/index.md
@@ -3,3 +3,4 @@
- [Installing NumPy](installing-numpy.md)
- [Introduction](introduction.md)
- [NumPy Data Types](datatypes.md)
+- [Operations on Arrays in NumPy](operations-on-arrays.md)
diff --git a/contrib/numpy/operations-on-arrays.md b/contrib/numpy/operations-on-arrays.md
new file mode 100644
index 0000000..e3966d2
--- /dev/null
+++ b/contrib/numpy/operations-on-arrays.md
@@ -0,0 +1,281 @@
+# Operations on Arrays
+
+## NumPy Arithmetic Operations
+
+NumPy offers a broad array of operations for arrays, including arithmetic functions.
+
+The arithmetic operations in NumPy are popular for their simplicity and efficiency in handling array calculations.
+
+**Addition**
+
+we can use the `+` operator to perform element-wise addition between two or more NumPy arrays.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([9, 10, 11, 12])
+array_2 = np.array([1, 3, 5, 7])
+result_1 = array_1 + array_2
+print("Utilizing the + operator:", result_1)
+```
+
+**Output:**
+```
+Utilizing the + operator: [10 13 16 19]
+```
+
+**Subtraction**
+
+we can use the `-` operator to perform element-wise subtraction between two or more NumPy arrays.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([9, 10, 11, 12])
+array_2 = np.array([1, 3, 5, 7])
+result_1 = array_1 - array_2
+print("Utilizing the - operator:", result_1)
+```
+
+**Output:**
+```
+Utilizing the - operator: [8 7 6 5]
+```
+
+**Multiplication**
+
+we can use the `*` operator to perform element-wise multiplication between two or more NumPy arrays.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([9, 10, 11, 12])
+array_2 = np.array([1, 3, 5, 7])
+result_1 = array_1 * array_2
+print("Utilizing the * operator:", result_1)
+```
+
+**Output:**
+```
+Utilizing the * operator: [9 30 55 84]
+```
+
+**Division**
+
+we can use the `/` operator to perform element-wise division between two or more NumPy arrays.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([9, 10, 11, 12])
+array_2 = np.array([1, 3, 5, 7])
+result_1 = array_1 / array_2
+print("Utilizing the / operator:", result_1)
+```
+
+**Output:**
+```
+Utilizing the / operator: [9. 3.33333333 2.2 1.71428571]
+```
+
+**Exponentiation**
+
+we can use the `**` operator to perform element-wise exponentiation between two or more NumPy arrays.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([9, 10, 11, 12])
+array_2 = np.array([1, 3, 5, 7])
+result_1 = array_1 ** array_2
+print("Utilizing the ** operator:", result_1)
+```
+
+**Output:**
+```
+Utilizing the ** operator: [9 1000 161051 35831808]
+```
+
+**Modulus**
+
+We can use the `%` operator to perform element-wise modulus operations between two or more NumPy arrays.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([9, 10, 11, 12])
+array_2 = np.array([1, 3, 5, 7])
+result_1 = array_1 % array_2
+print("Utilizing the % operator:", result_1)
+```
+
+**Output:**
+```
+Utilizing the % operator: [0 1 1 5]
+```
+
+
+
+## NumPy Comparision Operations
+
+
+
+NumPy provides various comparison operators that can compare elements across multiple NumPy arrays.
+
+**less than operator**
+
+The `<` operator returns `True` if the value of operand on left is less than the value of operand on right.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([12,15,20])
+array_2 = np.array([20,15,12])
+result_1 = array_1 < array_2
+print("array_1 < array_2:",result_1)
+```
+**Output:**
+```
+array_1 < array_2 : [True False False]
+```
+
+**less than or equal to operator**
+
+The `<=` operator returns `True` if the value of operand on left is lesser than or equal to the value of operand on right.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([12,15,20])
+array_2 = np.array([20,15,12])
+result_1 = array_1 <= array_2
+print("array_1 <= array_2:",result_1)
+```
+**Output:**
+```
+array_1 <= array_2: [True True False]
+```
+
+**greater than operator**
+
+The `>` operator returns `True` if the value of operand on left is greater than the value of operand on right.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([12,15,20])
+array_2 = np.array([20,15,12])
+result_2 = array_1 > array_2
+print("array_1 > array_2:",result_2)
+```
+**Output:**
+```
+array_1 > array_2 : [False False True]
+```
+
+**greater than or equal to operator**
+
+The `>=` operator returns `True` if the value of operand on left is greater than or equal to the value of operand on right.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([12,15,20])
+array_2 = np.array([20,15,12])
+result_2 = array_1 >= array_2
+print("array_1 >= array_2:",result_2)
+```
+**Output:**
+```
+array_1 >= array_2: [False True True]
+```
+
+**equal to operator**
+
+The `==` operator returns `True` if the value of operand on left is same as the value of operand on right.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([12,15,20])
+array_2 = np.array([20,15,12])
+result_3 = array_1 == array_2
+print("array_1 == array_2:",result_3)
+```
+**Output:**
+```
+array_1 == array_2: [False True False]
+```
+
+**not equal to operator**
+
+The `!=` operator returns `True` if the value of operand on left is not equal to the value of operand on right.
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([12,15,20])
+array_2 = np.array([20,15,12])
+result_3 = array_1 != array_2
+print("array_1 != array_2:",result_3)
+```
+**Output:**
+```
+array_1 != array_2: [True False True]
+```
+
+
+
+## NumPy Logical Operations
+
+Logical operators perform Boolean algebra. A branch of algebra that deals with `True` and `False` statements.
+
+It illustrates the logical operations of AND, OR, and NOT using np.logical_and(), np.logical_or(), and np.logical_not() functions, respectively.
+
+**Logical AND**
+
+Evaluates the element-wise truth value of `array_1` AND `array_2`
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([True, False, True])
+array_2 = np.array([False, False, True])
+print(np.logical_and(array_1, array_2))
+```
+**Output:**
+```
+[False False True]
+```
+
+**Logical OR**
+
+Evaluates the element-wise truth value of `array_1` OR `array_2`
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([True, False, True])
+array_2 = np.array([False, False, True])
+print(np.logical_or(array_1, array_2))
+```
+**Output:**
+```
+[True False True]
+```
+
+**Logical NOT**
+
+Evaluates the element-wise truth value of `array_1` NOT `array_2`
+
+**Code**
+```python
+import numpy as np
+array_1 = np.array([True, False, True])
+array_2 = np.array([False, False, True])
+print(np.logical_not(array_1))
+```
+**Output:**
+```
+[False True False]
+```