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.