Python Data Science Essentials | NumPy, Pandas, Matplotlib Sinhala Guide

Python Data Science Essentials | NumPy, Pandas, Matplotlib Sinhala Guide

ආයුබෝවන්, data science ලෝකයට පිවිසෙන්න බලාපොරොත්තු වෙන ඔයාලා හැමෝටම! 🚀

අද වන විට, data කියන්නේ අපේ ලෝකයේ තියෙන වටිනාම සම්පතක් බවට පත් වෙලා. ඒ වගේම, ඒ data එකතු කරලා, විශ්ලේෂණය කරලා, ඒකෙන් තේරුමක් ගන්න පුළුවන් කෙනෙකුට තියෙන වටිනාකම අති විශාලයි. ඉතින්, ඔයාලත් මේ data science කියන රන් ආකරයේ නිධන් හොයන්න ආස කෙනෙක් නම්, Python කියන්නේ ඔයාලගේ අතේ තියෙන්න ඕනේ හොඳම ආයුධයයි.

Python වල data science සඳහාම නිර්මාණය කරපු libraries ගොඩක් තියෙනවා. ඒ අතරින්, අද අපි කතා කරන්න යන්නේ ඔයාලා අනිවාර්යයෙන්ම දැනගෙන ඉන්න ඕන කරන මූලිකම සහ බලගතුම libraries තුනක් ගැනයි: NumPy, Pandas, සහ Matplotlib/Seaborn. මේවා හරියට data science වල ABC වගේ. මේවා නැතුව data science වල දුර යන්න අමාරුයි, නේද?

මේ tutorial එකෙන් අපි මේ libraries මොනවද, ඒවා භාවිතා කරන්නේ කොහොමද, සහ data science projects වලදී ඒවායින් ලැබෙන ප්‍රයෝජන මොනවද කියලා සරලව, පැහැදිලිව ඉගෙන ගමු. අපි බලමු මේවා භාවිතා කරලා data manipulate කරන්නේ, analyze කරන්නේ සහ ලස්සනට visualize කරන්නේ කොහොමද කියලා. එහෙනම්, අපි පටන් ගමු!

NumPy - සංඛ්‍යාත්මක ගණනය කිරීම් සඳහා ප්‍රබල අත්තිවාරම

NumPy (Numerical Python) කියන්නේ Python වල සංඛ්‍යාත්මක ගණනය කිරීම් (numerical computations) සඳහා භාවිතා කරන මූලිකම library එක. ඔයාලා විශාල දත්ත ප්‍රමාණයක් (large datasets) එක්ක වැඩ කරනවා නම්, NumPy අත්‍යවශ්‍යයි. සාමාන්‍ය Python lists වලට වඩා NumPy arrays (ndarray) ඉතා වේගවත් සහ memory efficient. ඒකට හේතුව, NumPy වල අභ්‍යන්තර ක්‍රියාකාරිත්වය C language එකෙන් ලියලා තියෙන නිසා.

NumPy Arrays (ndarray)

NumPy වල මූලිකම data structure එක තමයි ndarray (N-dimensional array). මේවා එකම data type එකේ (homogeneous) elements ගොඩක් අඩංගු කරන්න පුළුවන් grids වගේ.

ndarray එකක් නිර්මාණය කිරීම

np.array(), np.zeros(), np.ones(), np.arange(), np.linspace() වගේ functions භාවිතා කරලා arrays හදන්න පුළුවන්.

මූලික මෙහෙයුම් (Basic Operations)

  • Element-wise Operations: arrays අතර ගණිතමය මෙහෙයුම් (addition, subtraction, multiplication, division) direct කරන්න පුළුවන්.
  • Slicing and Indexing: Python lists වගේම array එකක කොටස් තෝරා ගන්න පුළුවන්.
  • Reshaping: array එකක shape එක වෙනස් කරන්න පුළුවන්.
  • Aggregate Functions: np.sum(), np.mean(), np.std() වගේ functions භාවිතා කරලා arrays වල එකතුව, සාමාන්‍යය, සම්මත අපගමනය වගේ දේවල් හොයන්න පුළුවන්.

NumPy උදාහරණය: Array නිර්මාණය සහ මෙහෙයුම්

අපි මේ concepts practical විදිහට බලමු.

import numpy as np

# සරල NumPy array එකක් නිර්මාණය කිරීම
arr = np.array([1, 2, 3, 4, 5])
print("Original Array:", arr)
print("Type of arr:", type(arr))

# Element-wise operations
print("Array + 5:", arr + 5)
print("Array * 2:", arr * 2)

# Slicing
print("First three elements:", arr[0:3])

# 2D array එකක් නිර්මාණය කිරීම (matrix)
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print("\n2D Array:\n", matrix)
print("Shape of matrix:", matrix.shape)

# 2D array එකක elements වලට ප්‍රවේශ වීම
print("Element at (0, 1):", matrix[0, 1])

# සියලුම elements වල එකතුව
print("Sum of all elements:", np.sum(matrix))
# පළමු column එකේ සාමාන්‍යය
print("Mean of column 1:", np.mean(matrix[:, 0]))

මේ උදාහරණයෙන් ඔයාලට පෙනෙනවා, NumPy කොච්චර සරලව සහ වේගවත්ව numerical operations කරන්න ඉඩ දෙනවද කියලා. විශාල datasets එක්ක වැඩ කරනකොට මේක හරිම වැදගත්.

Pandas - දත්ත හැසිරවීම සඳහා විශ්වාසවන්ත සහායකයා

Pandas කියන්නේ Python වල data manipulation සහ analysis සඳහා අතිශය ජනප්‍රිය library එකක්. Structured data (උදා: spreadsheets, database tables, CSV files) එක්ක වැඩ කරන්න මේක හොඳම විසඳුමයි. Pandas වල මූලිකම data structures දෙක තමයි Series සහ DataFrame.

Pandas Series සහ DataFrame

  • Series: මේක one-dimensional labeled array එකක්. NumPy array එකකට සමානයි, නමුත් labels (index) තියෙනවා.
  • DataFrame: මේක two-dimensional labeled data structure එකක්. හරියට spreadsheet එකක්, SQL table එකක්, නැත්නම් dictionary of Series objects එකක් වගේ. Columns වල විවිධ data types තියෙන්න පුළුවන්.

DataFrame එකක් නිර්මාණය කිරීම සහ දත්ත කියවීම

pd.DataFrame() භාවිතා කරලා dictionaries, lists වලින් DataFrames හදන්න පුළුවන්. ඒ වගේම pd.read_csv(), pd.read_excel() වගේ functions භාවිතා කරලා විවිධ file formats වලින් data load කරන්නත් පුළුවන්.

මූලික දත්ත හැසිරවීමේ මෙහෙයුම් (Basic Data Manipulation Operations)

  • Column Selection: DataFrame එකක columns තෝරා ගැනීම.
  • Row Filtering: යම්කිසි condition එකකට අනුව rows තෝරා ගැනීම.
  • Missing Data Handling: නැති වෙලා තියෙන data (NaN values) හොයාගෙන ඒවා drop කරන්න නැත්නම් පුරවන්න (fill) පුළුවන්.
  • Group By: data එක group කරලා aggregate operations (sum, mean, count) කරන්න පුළුවන්.
  • Sorting: DataFrame එකක rows යම්කිසි column එකක් අනුව sort කරන්න පුළුවන්.

Pandas උදාහරණය: DataFrame නිර්මාණය සහ මෙහෙයුම්

අපි බලමු Pandas කොහොමද practical විදිහට data manipulate කරන්න උදව් කරන්නේ කියලා.

import pandas as pd

# Dictionary එකකින් DataFrame එකක් නිර්මාණය කිරීම
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 28],
    'City': ['New York', 'London', 'Paris', 'New York'],
    'Salary': [70000, 80000, 95000, 75000]
}
df = pd.DataFrame(data)
print("Original DataFrame:\n", df)

# Column එකක් තෝරා ගැනීම
print("\nNames:\n", df['Name'])

# Condition එකකට අනුව rows filter කිරීම
print("\nPeople older than 30:\n", df[df['Age'] > 30])

# City එක අනුව group කරලා සාමාන්‍යය වැටුප ගණනය කිරීම
avg_salary_by_city = df.groupby('City')['Salary'].mean()
print("\nAverage Salary by City:\n", avg_salary_by_city)

# --- CSV file එකකින් DataFrame එකක් load කිරීම (උදාහරණයක්) ---
# මේක run කරන්න නම්, 'sample_data.csv' නමින් file එකක් ඔයාගේ project folder එකේ තියෙන්න ඕනේ.
# උදාහරණයක් ලෙස 'sample_data.csv' අන්තර්ගතය:
# Name,Age,City,Score
# Eva,22,Berlin,85
# Frank,31,Rome,92
# Grace,29,Madrid,78

try:
    # df_csv = pd.read_csv('sample_data.csv')
    # print("\nDataFrame loaded from CSV:\n", df_csv.head())
    pass # පැහැදිලි බව වෙනුවෙන් මේ section එක comment කරලා තියෙනවා
except FileNotFoundError:
    print("\n('sample_data.csv' file එක හමු නොවීය. CSV loading උදාහරණය මඟ හරින ලදී.)")

Pandas කියන්නේ data cleaning, data transformation, සහ exploratory data analysis (EDA) වලදී ඔයාලගේ කාලය විශාල ලෙස ඉතිරි කරන පුදුමාකාර tool එකක්.

Matplotlib සහ Seaborn - දත්ත දෘශ්‍යකරණය කරමු!

Data science වලදී, data analyze කරනවා වගේම, ඒකෙන් හොයාගත්ත insights අනිත් අයට පැහැදිලිව ඉදිරිපත් කරන්නත් පුළුවන් වෙන්න ඕනේ. මෙතනදී තමයි data visualization කියන එක වැදගත් වෙන්නේ. Matplotlib සහ Seaborn කියන්නේ Python වල ජනප්‍රියම visualization libraries දෙකයි.

Matplotlib - මූලික Plotting Library එක

Matplotlib කියන්නේ Python වල graphical plots, charts, histograms වගේ දේවල් හදන්න පුළුවන් fundamental plotting library එක. මේක බොහෝ විට programming language එකක plt alias එක යටතේ භාවිතා කරනවා.

Matplotlib වලින් කරන්න පුළුවන් දේවල්

  • Line plots, Scatter plots, Bar plots, Histograms
  • Subplots (එකම figure එකේ plots කිහිපයක්)
  • Labels, Titles, Legends එකතු කිරීම
  • Plots customize කිරීම සඳහා පුළුල් පරාසයක options

Seaborn - සුන්දර සංඛ්‍යානමය Plotting

Seaborn කියන්නේ Matplotlib මත ගොඩනැගුණු library එකක්. Matplotlib වලට වඩා සරල syntax එකක් භාවිතා කරලා, වඩාත් ආකර්ෂණීය සහ සංඛ්‍යානමය plots (statistical plots) හදන්න මේක උදව් කරනවා. විශේෂයෙන්ම complex multi-variate data sets visualize කරන්න Seaborn විශිෂ්ටයි.

Seaborn වල විශේෂාංග

  • ලස්සන default styles සහ color palettes
  • Statistical plots (regression plots, distribution plots, categorical plots)
  • Pandas DataFrames එක්ක හොඳින් ක්‍රියා කිරීමේ හැකියාව

Matplotlib සහ Seaborn උදාහරණය: දත්ත දෘශ්‍යකරණය

අපි බලමු මේ libraries දෙක භාවිතා කරලා අපේ data sets visualize කරන්නේ කොහොමද කියලා.

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd # Pandas DataFrame එකක් සඳහා

# Matplotlib උදාහරණය: Line plot
x = np.linspace(0, 10, 100) # 0 සිට 10 දක්වා අගයන් 100ක්
y = np.sin(x) # sin(x) function එක

plt.figure(figsize=(8, 4)) # Plot එකේ ප්‍රමාණය සකස් කිරීම
plt.plot(x, y, label='sin(x) function', color='blue')
plt.title('Simple Sine Wave') # Plot එකට මාතෘකාවක්
plt.xlabel('X-axis') # X-අක්ෂයේ ලේබලය
plt.ylabel('Y-axis') # Y-අක්ෂයේ ලේබලය
plt.legend() # Legend එක පෙන්වීම
plt.grid(True) # Grid එක පෙන්වීම
plt.show() # Plot එක display කිරීම

# Seaborn උදාහරණය: Regression line එකක් සහිත Scatter plot
# Pandas example එකේ DataFrame එක භාවිතා කරමු
data_for_plot = {
    'Age': [25, 30, 35, 28, 22, 31, 29],
    'Salary': [70000, 80000, 95000, 75000, 68000, 82000, 76000]
}
df_plot = pd.DataFrame(data_for_plot)

plt.figure(figsize=(8, 5)) # Plot එකේ ප්‍රමාණය සකස් කිරීම
sns.scatterplot(x='Age', y='Salary', data=df_plot, hue='Age', size='Salary', sizes=(50, 200), palette='viridis')
sns.regplot(x='Age', y='Salary', data=df_plot, scatter=False, color='red', line_kws={'linestyle':'--'}) # Regression line එකක් එකතු කිරීම
plt.title('Age vs. Salary Scatter Plot with Regression Line (Seaborn)') # Plot එකට මාතෘකාවක්
plt.xlabel('Age (Years)') # X-අක්ෂයේ ලේබලය
plt.ylabel('Salary (LKR)') # Y-අක්ෂයේ ලේබලය (දේශීය මුදල් ඒකකයක් භාවිතා කරමින්)
plt.grid(True, linestyle=':', alpha=0.7) # Grid එක පෙන්වීම
plt.show() # Plot එක display කිරීම

මේ උදාහරණ වලින් පෙනෙනවා Matplotlib සහ Seaborn කොච්චර නම් බලගතුද කියලා. මේවා භාවිතා කරලා data එකේ තියෙන රටා (patterns), correlations, සහ trends පැහැදිලිව දකින්න පුළුවන්. ඒ වගේම, මේ libraries දෙක එකට භාවිතා කිරීමෙන් ඔයාලට data visualization වලදී උපරිම ප්‍රතිඵල ලබා ගන්න පුළුවන්.

නිගමනය

ඉතින්, මේ tutorial එකෙන් අපි Python for Data Science වල මූලිකම libraries තුනක් වන NumPy, Pandas, සහ Matplotlib/Seaborn ගැන ඉගෙන ගත්තා. අපි දැක්කා NumPy කොහොමද සංඛ්‍යාත්මක ගණනය කිරීම් වේගවත් කරන්නේ කියලා, Pandas කොහොමද data manipulate කරන්න උදව් කරන්නේ කියලා, සහ Matplotlib/Seaborn කොහොමද ඒ data insights ලස්සනට visualize කරන්නේ කියලා.

මේවා data scientist කෙනෙකුට අත්‍යවශ්‍ය tools. දැන් ඔයාලාට පුළුවන් මේ concepts භාවිතා කරලා පොඩි data sets ටිකක් analyze කරන්න පටන් ගන්න. CSV files load කරලා filter කරන්න, group කරන්න, සහ graphs අඳින්න උත්සාහ කරන්න. අතින් කරලා බලන එක තමයි හොඳම ඉගෙනීමේ ක්‍රමය.

ඔයාලගේ අත්දැකීම්, මේ ගැන තියෙන ප්‍රශ්න, නැත්නම් ඔයාලා මේ libraries භාවිතා කරපු විදිහ පහල comment section එකේ share කරන්න! 💬 ඔයාලා හැමෝටම data science ගමනට සුබ පැතුම්! 🌟