Install Numpy¶

In [1]:
pip install numpy
Requirement already satisfied: numpy in c:\users\user\appdata\local\programs\python\python313\lib\site-packages (2.3.2)
Note: you may need to restart the kernel to use updated packages.
[notice] A new release of pip is available: 25.1.1 -> 25.2
[notice] To update, run: python.exe -m pip install --upgrade pip
In [3]:
pip install --upgrade pip
Requirement already satisfied: pip in c:\users\user\appdata\local\programs\python\python313\lib\site-packages (25.1.1)
Collecting pip
  Using cached pip-25.2-py3-none-any.whl.metadata (4.7 kB)
Using cached pip-25.2-py3-none-any.whl (1.8 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 25.1.1
    Uninstalling pip-25.1.1:
      Successfully uninstalled pip-25.1.1
Successfully installed pip-25.2
Note: you may need to restart the kernel to use updated packages.

Importing Numpy¶

In [1]:
import numpy as np

Creating Numpy Arrays¶

In [2]:
arr = np.array([1,2,3,4,5])
print(arr)
[1 2 3 4 5]

Types of Arrays¶

One-Dimensional (1D) Array

In [4]:
arr1D = np.array([10, 20, 30, 40]) 
print(arr1D)
[10 20 30 40]

Two-Dimensional (2D) Array (Matrix)

In [5]:
arr2D = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2D)
[[1 2 3]
 [4 5 6]]

Three-Dimensional (3D) Array (Tensor)

In [6]:
arr3D = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) 
print(arr3D)
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]

Checking Numpy Version¶

In [7]:
print(np.__version__)
2.3.2

Comparing Execution Time¶

In [3]:
import time 
# Using Python List 
lst = list(range(1000000)) 
start = time.time() 
lst = [x*2 for x in lst] 
end = time.time() 
print("Python List Time:", end - start) 
# Using NumPy Array 
arr = np.arange(1000000) 
start = time.time() 
arr = arr * 2 
end = time.time() 
print("NumPy Array Time:", end - start)
Python List Time: 0.04584479331970215
NumPy Array Time: 0.0017659664154052734

Basic Array Attributes¶

In [8]:
arr = np.array([[1, 2, 3], [4, 5, 6]]) 
print(arr.ndim) # Output: 2 (2D array) 
print(arr.shape) # Output: (2, 3) → 2 rows, 3 columns 
print(arr.size) # Output: 6 (total elements) 
print(arr.dtype) # Output: int64 (data type) 
print(arr.itemsize) # Output: 4 (bytes per element)
2
(2, 3)
6
int64
8

Indexing¶

In [9]:
arr = np.array([10, 20, 30, 40, 50]) 
print(arr[0]) # Output: 10 
print(arr[2]) # Output: 30 
print(arr[-1]) # Output: 50 (Last element)
10
30
50

Slicing¶

In [11]:
arr = np.array([10, 20, 30, 40, 50, 60, 70]) 
print(arr[1:5]) # Output: [20 30 40 50]
print(arr[:4]) # Output: [10 20 30 40] (First 4 elements) 
print(arr[2:]) # Output: [30 40 50 60 70] (From index 2 to end) 
print(arr[::2]) # Output: [10 30 50 70] (Every 2nd element) 
print(arr[::-1]) # Output: [70 60 50 40 30 20 10] (Reversed)
[20 30 40 50]
[10 20 30 40]
[30 40 50 60 70]
[10 30 50 70]
[70 60 50 40 30 20 10]
In [12]:
pip install nbconvert
Collecting nbconvert
  Downloading nbconvert-7.16.6-py3-none-any.whl.metadata (8.5 kB)
Collecting beautifulsoup4 (from nbconvert)
  Downloading beautifulsoup4-4.13.5-py3-none-any.whl.metadata (3.8 kB)
Collecting bleach!=5.0.0 (from bleach[css]!=5.0.0->nbconvert)
  Downloading bleach-6.2.0-py3-none-any.whl.metadata (30 kB)
Collecting defusedxml (from nbconvert)
  Downloading defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB)
Collecting jinja2>=3.0 (from nbconvert)
  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
Requirement already satisfied: jupyter-core>=4.7 in c:\users\user\appdata\roaming\python\python313\site-packages (from nbconvert) (5.8.1)
Collecting jupyterlab-pygments (from nbconvert)
  Downloading jupyterlab_pygments-0.3.0-py3-none-any.whl.metadata (4.4 kB)
Collecting markupsafe>=2.0 (from nbconvert)
  Downloading MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl.metadata (4.1 kB)
Collecting mistune<4,>=2.0.3 (from nbconvert)
  Downloading mistune-3.1.3-py3-none-any.whl.metadata (1.8 kB)
Collecting nbclient>=0.5.0 (from nbconvert)
  Downloading nbclient-0.10.2-py3-none-any.whl.metadata (8.3 kB)
Collecting nbformat>=5.7 (from nbconvert)
  Downloading nbformat-5.10.4-py3-none-any.whl.metadata (3.6 kB)
Requirement already satisfied: packaging in c:\users\user\appdata\roaming\python\python313\site-packages (from nbconvert) (25.0)
Collecting pandocfilters>=1.4.1 (from nbconvert)
  Downloading pandocfilters-1.5.1-py2.py3-none-any.whl.metadata (9.0 kB)
Requirement already satisfied: pygments>=2.4.1 in c:\users\user\appdata\roaming\python\python313\site-packages (from nbconvert) (2.19.2)
Requirement already satisfied: traitlets>=5.1 in c:\users\user\appdata\roaming\python\python313\site-packages (from nbconvert) (5.14.3)
Collecting webencodings (from bleach!=5.0.0->bleach[css]!=5.0.0->nbconvert)
  Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB)
Collecting tinycss2<1.5,>=1.1.0 (from bleach[css]!=5.0.0->nbconvert)
  Downloading tinycss2-1.4.0-py3-none-any.whl.metadata (3.0 kB)
Requirement already satisfied: platformdirs>=2.5 in c:\users\user\appdata\roaming\python\python313\site-packages (from jupyter-core>=4.7->nbconvert) (4.4.0)
Requirement already satisfied: pywin32>=300 in c:\users\user\appdata\roaming\python\python313\site-packages (from jupyter-core>=4.7->nbconvert) (311)
Requirement already satisfied: jupyter-client>=6.1.12 in c:\users\user\appdata\roaming\python\python313\site-packages (from nbclient>=0.5.0->nbconvert) (8.6.3)
Requirement already satisfied: python-dateutil>=2.8.2 in c:\users\user\appdata\roaming\python\python313\site-packages (from jupyter-client>=6.1.12->nbclient>=0.5.0->nbconvert) (2.9.0.post0)
Requirement already satisfied: pyzmq>=23.0 in c:\users\user\appdata\roaming\python\python313\site-packages (from jupyter-client>=6.1.12->nbclient>=0.5.0->nbconvert) (27.0.2)
Requirement already satisfied: tornado>=6.2 in c:\users\user\appdata\roaming\python\python313\site-packages (from jupyter-client>=6.1.12->nbclient>=0.5.0->nbconvert) (6.5.2)
Collecting fastjsonschema>=2.15 (from nbformat>=5.7->nbconvert)
  Downloading fastjsonschema-2.21.2-py3-none-any.whl.metadata (2.3 kB)
Collecting jsonschema>=2.6 (from nbformat>=5.7->nbconvert)
  Downloading jsonschema-4.25.1-py3-none-any.whl.metadata (7.6 kB)
Collecting attrs>=22.2.0 (from jsonschema>=2.6->nbformat>=5.7->nbconvert)
  Downloading attrs-25.3.0-py3-none-any.whl.metadata (10 kB)
Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=2.6->nbformat>=5.7->nbconvert)
  Downloading jsonschema_specifications-2025.4.1-py3-none-any.whl.metadata (2.9 kB)
Collecting referencing>=0.28.4 (from jsonschema>=2.6->nbformat>=5.7->nbconvert)
  Downloading referencing-0.36.2-py3-none-any.whl.metadata (2.8 kB)
Collecting rpds-py>=0.7.1 (from jsonschema>=2.6->nbformat>=5.7->nbconvert)
  Downloading rpds_py-0.27.1-cp313-cp313-win_amd64.whl.metadata (4.3 kB)
Requirement already satisfied: six>=1.5 in c:\users\user\appdata\roaming\python\python313\site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->nbclient>=0.5.0->nbconvert) (1.17.0)
Collecting soupsieve>1.2 (from beautifulsoup4->nbconvert)
  Downloading soupsieve-2.8-py3-none-any.whl.metadata (4.6 kB)
Collecting typing-extensions>=4.0.0 (from beautifulsoup4->nbconvert)
  Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
Downloading nbconvert-7.16.6-py3-none-any.whl (258 kB)
Downloading mistune-3.1.3-py3-none-any.whl (53 kB)
Downloading bleach-6.2.0-py3-none-any.whl (163 kB)
Downloading tinycss2-1.4.0-py3-none-any.whl (26 kB)
Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
Downloading MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl (15 kB)
Downloading nbclient-0.10.2-py3-none-any.whl (25 kB)
Downloading nbformat-5.10.4-py3-none-any.whl (78 kB)
Downloading fastjsonschema-2.21.2-py3-none-any.whl (24 kB)
Downloading jsonschema-4.25.1-py3-none-any.whl (90 kB)
Downloading attrs-25.3.0-py3-none-any.whl (63 kB)
Downloading jsonschema_specifications-2025.4.1-py3-none-any.whl (18 kB)
Downloading pandocfilters-1.5.1-py2.py3-none-any.whl (8.7 kB)
Downloading referencing-0.36.2-py3-none-any.whl (26 kB)
Downloading rpds_py-0.27.1-cp313-cp313-win_amd64.whl (232 kB)
Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Downloading beautifulsoup4-4.13.5-py3-none-any.whl (105 kB)
Downloading soupsieve-2.8-py3-none-any.whl (36 kB)
Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Downloading jupyterlab_pygments-0.3.0-py3-none-any.whl (15 kB)
Installing collected packages: webencodings, fastjsonschema, typing-extensions, tinycss2, soupsieve, rpds-py, pandocfilters, mistune, markupsafe, jupyterlab-pygments, defusedxml, bleach, attrs, referencing, jinja2, beautifulsoup4, jsonschema-specifications, jsonschema, nbformat, nbclient, nbconvert

   ------------- --------------------------  7/21 [mistune]
   -------------------- ------------------- 11/21 [bleach]
   -------------------------- ------------- 14/21 [jinja2]
   ---------------------------- ----------- 15/21 [beautifulsoup4]
   ---------------------------------- ----- 18/21 [nbformat]
   ---------------------------------------- 21/21 [nbconvert]

Successfully installed attrs-25.3.0 beautifulsoup4-4.13.5 bleach-6.2.0 defusedxml-0.7.1 fastjsonschema-2.21.2 jinja2-3.1.6 jsonschema-4.25.1 jsonschema-specifications-2025.4.1 jupyterlab-pygments-0.3.0 markupsafe-3.0.2 mistune-3.1.3 nbclient-0.10.2 nbconvert-7.16.6 nbformat-5.10.4 pandocfilters-1.5.1 referencing-0.36.2 rpds-py-0.27.1 soupsieve-2.8 tinycss2-1.4.0 typing-extensions-4.15.0 webencodings-0.5.1
Note: you may need to restart the kernel to use updated packages.