NumPy (Numerical Python) একটি ওপেন-সোর্স লাইব্রেরি যা Python-এ উচ্চ-কার্যক্ষমতাসম্পন্ন গাণিতিক এবং বৈজ্ঞানিক গণনা করার জন্য ব্যবহৃত হয়। এটি বিশেষত সন্নিবেশিত অ্যারে (array) এবং ম্যাট্রিক্সের জন্য ব্যবহৃত হয়, যা গাণিতিক গণনা এবং বিশ্লেষণের জন্য অত্যন্ত কার্যকর। NumPy-এর প্রধান উপাদানগুলির মধ্যে একটি হল এর n-dimensional array (ndarray) যা দ্রুত এবং সহজে বিশাল পরিমাণ ডেটা পরিচালনা করতে সাহায্য করে।
NumPy এর মূল উপাদান হল ndarray
। এটি একাধিক ডাইমেনশন নিয়ে গঠিত একটি অ্যারে যা দ্রুত গাণিতিক কাজের জন্য ডিজাইন করা হয়েছে। সাধারণত, এটি NumPy-এর সমস্ত কাজের কেন্দ্রবিন্দু।
উদাহরণ:
import numpy as np
# একমাত্রিক (1D) অ্যারে তৈরি
arr = np.array([1, 2, 3, 4, 5])
print(arr) # [1 2 3 4 5]
# দ্বিমাত্রিক (2D) অ্যারে তৈরি
arr2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2d)
# [[1 2 3]
# [4 5 6]]
NumPy বিভিন্ন ধরনের অ্যারে তৈরির জন্য ফাংশন প্রদান করে। কিছু জনপ্রিয় ফাংশন:
np.zeros()
: একটি পূর্ণ শূন্য অ্যারে তৈরি করা।np.ones()
: একটি পূর্ণ এক অ্যারে তৈরি করা।np.arange()
: একটি অ্যারে তৈরি করা যা নির্দিষ্ট রেঞ্জে সংখ্যা থাকে।np.linspace()
: নির্দিষ্ট সংখ্যক উপাদান নিয়ে নির্দিষ্ট রেঞ্জের মধ্যে লিনিয়ার স্পেসিং সহ অ্যারে তৈরি করা।উদাহরণ:
import numpy as np
# শূন্য অ্যারে তৈরি
zeros_arr = np.zeros((2, 3)) # 2x3 এর শূন্য অ্যারে
print(zeros_arr)
# একক অ্যারে তৈরি
ones_arr = np.ones((2, 3)) # 2x3 এর একক অ্যারে
print(ones_arr)
# নির্দিষ্ট রেঞ্জে অ্যারে তৈরি
range_arr = np.arange(0, 10, 2) # 0 থেকে 10 পর্যন্ত 2 ব্যাবধানে
print(range_arr)
NumPy অ্যারে উপর গাণিতিক অপারেশন সহজে করা যায়, যেটি দ্রুত এবং কার্যকরী হয়।
উদাহরণ:
import numpy as np
# দুইটি অ্যারে
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# যোগফল
sum_arr = arr1 + arr2
print(sum_arr) # [5 7 9]
# গুণফল
prod_arr = arr1 * arr2
print(prod_arr) # [4 10 18]
# স্কেলার (scalar) গুণফল
scalar_prod = arr1 * 2
print(scalar_prod) # [2 4 6]
NumPy বিভিন্ন পরিসংখ্যান ফাংশন প্রদান করে, যেমন গড়, মাধ্যম, মানের বিচ্যুতি ইত্যাদি।
উদাহরণ:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
# গড়
mean = np.mean(arr)
print("Mean:", mean)
# মানের বিচ্যুতি
std_dev = np.std(arr)
print("Standard Deviation:", std_dev)
# সর্বোচ্চ এবং সর্বনিম্ন মান
max_val = np.max(arr)
min_val = np.min(arr)
print("Max:", max_val, "Min:", min_val)
NumPy লিনিয়ার অ্যালজেব্রা সম্পর্কিত অপারেশনও সমর্থন করে। যেমন ম্যাট্রিক্সের গুণফল, ইনভার্স ইত্যাদি।
উদাহরণ:
import numpy as np
# ম্যাট্রিক্স তৈরি
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# ম্যাট্রিক্স গুণফল
product = np.dot(A, B)
print(product)
# ম্যাট্রিক্স ইনভার্স
inverse = np.linalg.inv(A)
print(inverse)
NumPy-এর broadcasting ফিচার এটি নিশ্চিত করে যে, ছোট অ্যারে বড় অ্যারের সাথে গাণিতিক অপারেশন করতে পারে, এমনকি তাদের আকার ভিন্ন হলেও।
উদাহরণ:
import numpy as np
# বড় অ্যারে এবং ছোট অ্যারে
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([1, 0, -1])
# Broadcasting প্রয়োগ
result = arr1 + arr2
print(result) # [[2 2 2]
# [5 5 5]]
NumPy Python-এর একটি শক্তিশালী লাইব্রেরি যা গাণিতিক এবং বৈজ্ঞানিক গণনার জন্য ব্যবহৃত হয়। এর ndarray
ডেটা স্ট্রাকচার, দ্রুত গাণিতিক অপারেশন, এবং ভেক্টরাইজেশন সহ একটি বিস্তৃত বৈশিষ্ট্য সেট রয়েছে। NumPy ডেটা সায়েন্স, মেশিন লার্নিং, এবং অন্যান্য বৈজ্ঞানিক গবেষণায় অপরিহার্য একটি টুল।
NumPy (Numerical Python) একটি ওপেন-সোর্স Python লাইব্রেরি, যা বৈজ্ঞানিক গণনা এবং সংখ্যাত্মক বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি প্রধানত multidimensional array এবং matrix গণনা সমর্থন করে এবং উচ্চ কর্মক্ষমতা সম্পন্ন ম্যাথমেটিক্যাল ফাংশন সরবরাহ করে। NumPy-র সবচেয়ে বড় সুবিধা হল এর সক্ষমতা উচ্চ পারফরম্যান্স অ্যালগরিদম এবং গণনা করতে এবং বৃহৎ ডেটাসেটের সাথে কাজ করতে, যা অন্যান্য সাধারণ Python ডেটা স্ট্রাকচারের তুলনায় অনেক দ্রুত।
NumPy ডেটা সায়েন্স, মেশিন লার্নিং, ইমেজ প্রক্রিয়াকরণ, এবং অন্যান্য বৈজ্ঞানিক কাজের জন্য একটি অত্যন্ত গুরুত্বপূর্ণ লাইব্রেরি। এটি ডেটা বিশ্লেষণ, পরিসংখ্যান, এবং সিমুলেশন কাজগুলির জন্য ব্যবহৃত হয়।
ndarray
(N-dimensional array), যা একাধিক মাত্রার অ্যারে সমর্থন করে। এটি একক ধরনের ডেটা (যেমন ইন্টিজার, ফ্লোট) ধারণ করতে পারে এবং অনেক দ্রুত গণনা সম্পাদন করতে সক্ষম।NumPy ইনস্টল করতে আপনাকে pip (Python Package Installer) ব্যবহার করতে হবে। এটি Python-এর সবচেয়ে সাধারণ প্যাকেজ ম্যানেজার। নিচে NumPy ইনস্টল করার পদক্ষেপগুলো দেওয়া হল:
pip install numpy
এটি NumPy এর সর্বশেষ সংস্করণ ইনস্টল করবে। যদি আপনি একটি নির্দিষ্ট সংস্করণ ইনস্টল করতে চান, তবে সংস্করণ নম্বর দিয়ে এটি নির্দিষ্ট করতে পারেন:
pip install numpy==1.21.0
Anaconda একটি Python এবং R-এর জন্য ওপেন-সোর্স প্ল্যাটফর্ম যা বৈজ্ঞানিক গণনা এবং ডেটা সায়েন্সের জন্য ব্যবহৃত হয়। Anaconda এর মাধ্যমে NumPy ইনস্টল করার প্রক্রিয়া সহজ এবং দ্রুত।
conda install numpy
NumPy ইনস্টল করা শেষ হলে, আপনি এটি সঠিকভাবে ইনস্টল হয়েছে কিনা যাচাই করতে নিচের কমান্ডটি ব্যবহার করতে পারেন:
python -c "import numpy; print(numpy.__version__)"
এটি NumPy এর সংস্করণ প্রদর্শন করবে যদি ইনস্টলেশন সফল হয়।
NumPy ইনস্টল হয়ে গেলে, আপনি Python প্রোগ্রামে এটি ব্যবহার শুরু করতে পারেন। প্রথমে আপনাকে numpy
লাইব্রেরিটি import করতে হবে:
import numpy as np
এখানে np
হল একটি জনপ্রিয় উপনাম যা NumPy লাইব্রেরি সংক্ষেপে উল্লেখ করার জন্য ব্যবহৃত হয়।
import numpy as np
# একমাত্র অ্যারে তৈরি
arr = np.array([1, 2, 3, 4, 5])
print(arr)
# দুই মাত্রার অ্যারে তৈরি
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
# অ্যারের উপর গাণিতিক অপারেশন
arr = np.array([1, 2, 3])
print(arr + 2) # প্রতিটি উপাদানকে 2 যোগ করবে
# অ্যারে গুণ
arr2 = np.array([4, 5, 6])
print(arr * arr2) # এলিমেন্টওয়াইজ গুণ
np.zeros(shape)
: নির্দিষ্ট আকারের একটি শূন্য অ্যারে তৈরি করে।np.ones(shape)
: নির্দিষ্ট আকারের একটি একক অ্যারে তৈরি করে।np.random.rand()
: র্যান্ডম নম্বর উৎপন্ন করে।# শূন্য অ্যারে তৈরি
zeros_arr = np.zeros((3, 3))
print(zeros_arr)
# একক অ্যারে তৈরি
ones_arr = np.ones((2, 3))
print(ones_arr)
NumPy Python-এ সংখ্যাত্মক ডেটা পরিচালনা এবং বৈজ্ঞানিক গণনার জন্য একটি অত্যন্ত গুরুত্বপূর্ণ লাইব্রেরি। এটি দ্রুত অ্যারে এবং ম্যাট্রিক্স গণনা করতে সহায়ক এবং অনেক উন্নত গাণিতিক ফাংশন সরবরাহ করে। Python Data Science, মেশিন লার্নিং, এবং অন্যান্য বৈজ্ঞানিক প্রয়োগের জন্য এটি অপরিহার্য। NumPy ইনস্টল করা এবং ব্যবহার করা অত্যন্ত সহজ, এবং এটি Python এর শক্তিশালী বৈশিষ্ট্যগুলোর মধ্যে একটি।
NumPy হল Python-এর একটি গুরুত্বপূর্ণ লাইব্রেরি যা মূলত নম্বরিক ডেটা (Numerical Data) পরিচালনা এবং গাণিতিক কাজ করার জন্য ব্যবহৃত হয়। NumPy-র প্রধান সুবিধা হলো এর Arrays এবং Matrix ডেটা স্ট্রাকচার যা অনেক দ্রুত এবং স্মৃতি সাশ্রয়ী হতে পারে। NumPy Arrays এর মাধ্যমে আপনি ডেটা ম্যানিপুলেশন, গাণিতিক অপারেশন, এবং বিভিন্ন ধরনের পরিসংখ্যান বিশ্লেষণ সহজেই করতে পারেন।
NumPy Arrays তৈরি করার জন্য np.array() ফাংশন ব্যবহার করা হয়। এছাড়া, NumPy এর আরও কিছু ফাংশন রয়েছে যা নির্দিষ্ট ধরণের Arrays তৈরি করতে সহায়ক।
import numpy as np
# 1D অ্যারে তৈরি
arr_1d = np.array([1, 2, 3, 4, 5])
print(arr_1d)
# 2D অ্যারে তৈরি
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)
# 3D অ্যারে তৈরি
arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(arr_3d)
np.zeros()
: সব উপাদান 0
দিয়ে অ্যারে তৈরি।np.ones()
: সব উপাদান 1
দিয়ে অ্যারে তৈরি।np.arange()
: একটি নির্দিষ্ট সীমা পর্যন্ত অ্যারে তৈরি।np.linspace()
: দুটি মানের মধ্যে সমান দৈর্ঘ্যের উপাদান সহ অ্যারে তৈরি।# 5টি শূন্য (0) দিয়ে অ্যারে তৈরি
zeros_arr = np.zeros(5)
print(zeros_arr)
# 5টি একক (1) দিয়ে অ্যারে তৈরি
ones_arr = np.ones(5)
print(ones_arr)
# 0 থেকে 10 পর্যন্ত 5টি উপাদান নিয়ে অ্যারে তৈরি
range_arr = np.arange(0, 10, 2)
print(range_arr)
# 0 থেকে 10 পর্যন্ত 5টি সমান ভাগে ভাগ করা উপাদান
linspace_arr = np.linspace(0, 10, 5)
print(linspace_arr)
NumPy Array এর বিভিন্ন গুণাগুণ জানা খুবই গুরুত্বপূর্ণ, যেমন আকার (shape), ডেটা টাইপ (dtype), আয়তন (size) ইত্যাদি।
arr = np.array([[1, 2, 3], [4, 5, 6]])
# আকার (Shape)
print("Shape:", arr.shape)
# ডেটা টাইপ (Data Type)
print("Data type:", arr.dtype)
# আয়তন (Size)
print("Size:", arr.size)
# ডাইমেনশন (Dimensions)
print("Dimensions:", arr.ndim)
NumPy অ্যারের আকার পরিবর্তন করার জন্য reshape() ফাংশন ব্যবহার করা হয়। আপনি অ্যারের আকার নতুনভাবে নির্ধারণ করতে পারেন, যেমন 1D থেকে 2D বা 2D থেকে 3D ইত্যাদি।
arr = np.array([1, 2, 3, 4, 5, 6])
# 2D অ্যারে হিসেবে আকার পরিবর্তন
reshaped_arr = arr.reshape(2, 3)
print(reshaped_arr)
np.concatenate() বা np.vstack(), np.hstack() ফাংশন দ্বারা একাধিক অ্যারে একত্রিত (combine) করা যায়।
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# উল্লম্ব (Vertical) সংযুক্তিকরণ
vstack_arr = np.vstack((arr1, arr2))
print(vstack_arr)
# আড়াআড়ি (Horizontal) সংযুক্তিকরণ
hstack_arr = np.hstack((arr1, arr2))
print(hstack_arr)
NumPy অ্যারেকে বিভক্ত (split) করার জন্য np.split(), np.hsplit(), np.vsplit() ফাংশন ব্যবহার করা হয়।
arr = np.array([1, 2, 3, 4, 5, 6])
# 3 ভাগে বিভক্ত
split_arr = np.split(arr, 3)
print(split_arr)
NumPy অ্যারের নির্দিষ্ট উপাদান অ্যাক্সেস করার জন্য সাধারণভাবে ইনডেক্সিং এবং স্লাইসিং (slicing) ব্যবহার করা হয়।
arr = np.array([10, 20, 30, 40, 50])
# ইনডেক্সিং
print(arr[0]) # প্রথম উপাদান
# স্লাইসিং
print(arr[1:4]) # দ্বিতীয় থেকে চতুর্থ উপাদান
NumPy অ্যারের নির্দিষ্ট উপাদান পরিবর্তন করা যায়।
arr = np.array([1, 2, 3, 4, 5])
# দ্বিতীয় উপাদান পরিবর্তন করা
arr[1] = 10
print(arr)
NumPy অ্যারের সাথে সহজেই গাণিতিক অপারেশন করা যায়। আপনি সরাসরি অ্যারের উপাদানগুলির উপর গাণিতিক কাজ করতে পারেন যেমন যোগ, বিয়োগ, গুণ, ভাগ, ম্যাট্রিক্স অপারেশন ইত্যাদি।
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# যোগ
add = arr1 + arr2
print("Sum:", add)
# বিয়োগ
subtract = arr1 - arr2
print("Difference:", subtract)
# গুণ
multiply = arr1 * arr2
print("Product:", multiply)
# ভাগ
divide = arr1 / arr2
print("Division:", divide)
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
# ম্যাট্রিক্স গুণ
matrix_multiply = np.dot(arr1, arr2)
print("Matrix Multiplication:\n", matrix_multiply)
NumPy তে এমন অনেক গাণিতিক ফাংশন রয়েছে যেগুলি অ্যারের উপাদানগুলির ওপর একসাথে কাজ করে। এগুলিকে universal functions (ufuncs) বলা হয়।
arr = np.array([1, 4, 9, 16])
# Square root ফাংশন
sqrt_arr = np.sqrt(arr)
print("Square Roots:", sqrt_arr)
# Exponential ফাংশন
exp_arr = np.exp(arr)
print("Exponential:", exp_arr)
NumPy Arrays তৈরি এবং ম্যানিপুলেশন সহজ এবং শক্তিশালী উপায়ে ডেটা পরিচালনা করতে সহায়ক। NumPy অ্যারে ব্যবহার করে আপনি দ্রুত গাণিতিক অপারেশন, ডেটা ম্যানিপুলেশন, এবং বিশ্লেষণ করতে পারবেন। আপনি NumPy এর বিভিন্ন ফাংশন, যেমন reshape(), concatenate(), split(), এবং ufuncs ব্যবহার করে ডেটাকে দক্ষভাবে ম্যানিপুলেট করতে পারেন। NumPy এর সাহায্যে আপনি আরও গভীর বিশ্লেষণ এবং বড় ডেটা সেটের সাথে কাজ করতে সক্ষম হবেন।
Python-এর NumPy লাইব্রেরি অ্যারে (arrays) পরিচালনা এবং প্রক্রিয়াকরণের জন্য গুরুত্বপূর্ণ একটি টুল। এর মাধ্যমে আমরা অ্যারে স্লাইসিং (slicing), ইনডেক্সিং (indexing), এবং ব্রডকাস্টিং (broadcasting) করতে পারি। এগুলি বিভিন্ন ধরনের ডেটা ম্যানিপুলেশনে অত্যন্ত কার্যকরী এবং কার্যকরী হতে সাহায্য করে।
Indexing হল একটি অ্যারের নির্দিষ্ট উপাদান বা উপাদানগুলির অবস্থান শনাক্ত করার প্রক্রিয়া। NumPy অ্যারের মধ্যে ইনডেক্সিং করার জন্য অনেক ধরনের পদ্ধতি ব্যবহার করা যেতে পারে।
NumPy অ্যারে-এ একটি নির্দিষ্ট উপাদান অ্যাক্সেস করার জন্য সাধারণ Python এর ইনডেক্সিং ব্যবহার করা হয়। ইনডেক্সিং শূন্য (0) থেকে শুরু হয়।
উদাহরণ:
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
# প্রথম উপাদান (ইনডেক্স 0)
print(arr[0]) # আউটপুট: 10
# পঞ্চম উপাদান (ইনডেক্স 4)
print(arr[4]) # আউটপুট: 50
NumPy ইনডেক্সিংয়ে নেগেটিভ ইনডেক্স ব্যবহার করলে, এটি অ্যারের শেষ থেকে গণনা করতে সাহায্য করে।
উদাহরণ:
# শেষ উপাদান (ইনডেক্স -1)
print(arr[-1]) # আউটপুট: 50
# শেষের আগে উপাদান (ইনডেক্স -2)
print(arr[-2]) # আউটপুট: 40
Slicing হল একটি অ্যারের একটি উপসেট (subset) বা সাব-অ্যারে (sub-array) তৈরি করার প্রক্রিয়া। এটি start:stop:step ফরম্যাটে কাজ করে।
start
: অ্যারের শুরু থেকে কতটা উপাদান নিয়ে শুরু করতে হবে।stop
: অ্যারের শেষ পর্যন্ত কতটা উপাদান থাকতে হবে।step
: কতটা ইন্টারভাল নিয়ে উপাদানগুলো নির্বাচন করা হবে।উদাহরণ:
arr = np.array([10, 20, 30, 40, 50])
# প্রথম 3 উপাদান
print(arr[:3]) # আউটপুট: [10 20 30]
# 2য় থেকে 4র্থ উপাদান
print(arr[1:4]) # আউটপুট: [20 30 40]
# স্লাইসিং সহ স্টেপ
print(arr[::2]) # আউটপুট: [10 30 50]
স্লাইসিংয়ের ক্ষেত্রে নেগেটিভ ইনডেক্স ব্যবহার করা যেতে পারে, যা অ্যারের শেষ থেকে শুরু করবে।
উদাহরণ:
# শেষ 3 উপাদান
print(arr[-3:]) # আউটপুট: [30 40 50]
# 2য় থেকে 4র্থ উপাদান (নেগেটিভ ইনডেক্স)
print(arr[-4:-1]) # আউটপুট: [20 30 40]
Broadcasting হল NumPy-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ভিন্ন আকারের অ্যারের মধ্যে অপারেশন করার সময় একে অপরের সাথে সামঞ্জস্য তৈরি করতে ব্যবহৃত হয়। এটি ছোট আকারের অ্যারে-কে বড় আকারের অ্যারের সাথে অপারেশন করার জন্য প্রসারিত করে।
NumPy এ broadcasting কিছু নিয়ম অনুসরণ করে:
উদাহরণ ১: Scalar এবং Vector
arr = np.array([10, 20, 30, 40])
scalar = 5
# Scalar value এর সাথে অ্যারে যোগ করা
print(arr + scalar) # আউটপুট: [15 25 35 45]
এখানে, scalar মান 5
অ্যারের প্রতিটি উপাদানের সাথে যোগ করা হয়েছে।
উদাহরণ ২: দুইটি ভিন্ন আকারের অ্যারে
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([10, 20])
# দুটি ভিন্ন আকারের অ্যারের অপারেশন
print(arr1 + arr2) # আউটপুট: [[11 22] [13 24]]
এখানে, arr2
অ্যারেটি broadcasting হয়ে arr1
অ্যারের আকারের সাথে সামঞ্জস্যপূর্ণ হয়েছে এবং তাদের মানগুলির সাথে যোগ করা হয়েছে।
Broadcasting শুধুমাত্র তখনই কাজ করবে যখন দুটি অ্যারের কিছু আকারের মান থাকবে যা একে অপরকে সামঞ্জস্যপূর্ণ করবে, এবং সেগুলি সামঞ্জস্যপূর্ণ হতে হবে। উদাহরণস্বরূপ, অ্যারের প্রথম এবং দ্বিতীয় মাত্রা যদি পৃথক হয় এবং কোনও সামঞ্জস্য না থাকে, তবে broadcasting কাজ করবে না।
অথবা:
arr1 = np.array([1, 2, 3])
arr2 = np.array([[1, 2], [3, 4]])
# এই অপারেশনটি broadcasting করতে ব্যর্থ হবে
# print(arr1 + arr2) # ValueError: operands could not be broadcast together with shapes
এই তিনটি বৈশিষ্ট্য NumPy অ্যারের সাথে কাজ করার জন্য অত্যন্ত গুরুত্বপূর্ণ এবং ডেটা বিশ্লেষণ ও গণনামূলক কাজে অনেক উপকারী।
Mathematical এবং Statistical Operations ডেটা বিশ্লেষণ এবং ডেটা সায়েন্সে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি ডেটার মূল বৈশিষ্ট্য বোঝার জন্য ব্যবহৃত হয় এবং ডেটা থেকে অন্তর্দৃষ্টি লাভ করতে সহায়ক। Python-এ, এগুলি গণনা করতে NumPy এবং Pandas এর মতো লাইব্রেরি ব্যবহার করা হয়। এখানে আমরা Mean, Median, এবং Standard Deviation এর সংজ্ঞা এবং এগুলির গণনা প্রক্রিয়া ব্যাখ্যা করবো।
Mean, যা Arithmetic Mean নামে পরিচিত, একটি পরিসংখ্যানিক পরিমাপ যা ডেটার একটি সেগমেন্ট বা পুরো স্যাম্পল বা পপুলেশনের গড় মান বের করে। এটি সমস্ত ডেটা পয়েন্টের যোগফল এবং পয়েন্টগুলির সংখ্যা দিয়ে ভাগ করার মাধ্যমে হিসাব করা হয়।
গণনা সূত্র:
Mean=∑XN
যেখানে:
উদাহরণ: ডেটা পয়েন্ট: 5,10,15,20,25
গণনা:
Mean=5+10+15+20+255=755=15
Median হলো একটি পরিসংখ্যানিক পরিমাপ যা ডেটা সেটের মধ্যবর্তী মান নির্দেশ করে। যদি ডেটা সেটে একটি সরল সংখ্যা থাকে, তবে সেই সংখ্যা হল মিডিয়ান, এবং যদি সেটে দুটি সংখ্যা থাকে, তবে তাদের গড় মিডিয়ান হবে।
গণনা প্রক্রিয়া:
উদাহরণ ১ (বিসমিলায় সংখ্যা): ডেটা পয়েন্ট: 1,3,5,7,9
গণনা: মিডিয়ান =5 (মাঝের সংখ্যা)
উদাহরণ ২ (জোড় সংখ্যা): ডেটা পয়েন্ট: 1,3,5,7
গণনা: মিডিয়ান =3+52=4
Standard Deviation একটি পরিসংখ্যানিক পরিমাপ যা ডেটা পয়েন্টগুলির গড় থেকে কতটা বিচ্যুত তা পরিমাপ করে। এটি ডেটার বৈচিত্র্য বা পরিবর্তনশীলতার একটি মাপ। ছোট মানের মানক বিচ্যুতি নির্দেশ করে যে ডেটা পয়েন্টগুলি গড়ের কাছাকাছি অবস্থান করছে, এবং বড় মানের মানক বিচ্যুতি নির্দেশ করে যে ডেটা পয়েন্টগুলি গড় থেকে অনেক দূরে সরে গেছে।
গণনা সূত্র:
Standard Deviation=√∑(Xi−μ)2N
যেখানে:
উদাহরণ: ডেটা পয়েন্ট: 5,10,15,20,25
প্রথমে গড় (Mean) বের করুন:
Mean=5+10+15+20+255=15
প্রতিটি পয়েন্টের গড় থেকে বিচ্যুতি বের করুন এবং স্কোয়ার করুন:
(5−15)2=100,(10−15)2=25,(15−15)2=0,(20−15)2=25,(25−15)2=100
স্কোয়ারগুলি যোগ করুন:
100+25+0+25+100=250
স্কোয়ারগুলির যোগফলকে N দ্বারা ভাগ করুন (এখানে N=5):
2505=50
এরপরে স্কোয়ার রুট বের করুন:
√50≈7.07
তাহলে, মানক বিচ্যুতি হলো 7.07।
Python-এ এই পরিসংখ্যানিক পরিমাপগুলি NumPy লাইব্রেরি ব্যবহার করে খুব সহজে হিসাব করা যায়।
উদাহরণ:
import numpy as np
# ডেটা পয়েন্ট
data = np.array([5, 10, 15, 20, 25])
# Mean (গড়) হিসাব
mean = np.mean(data)
print("Mean:", mean)
# Median (মধ্যক) হিসাব
median = np.median(data)
print("Median:", median)
# Standard Deviation (মানক বিচ্যুতি) হিসাব
std_dev = np.std(data)
print("Standard Deviation:", std_dev)
আউটপুট:
Mean: 15.0
Median: 15.0
Standard Deviation: 7.071067811870354
Python-এ NumPy ব্যবহার করে এগুলির গণনা খুবই সহজ এবং কার্যকরী।
NumPy হল Python-এর একটি শক্তিশালী লাইব্রেরি যা সংখ্যাত্মক ডেটা (Numerical Data) ম্যানিপুলেশন এবং গাণিতিক কাজের জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি সহজেই Linear Algebra এবং Random Number Generation এর কাজ করতে পারেন। এই লাইব্রেরি গাণিতিক এবং স্ট্যাটিস্টিক্যাল কাজগুলো দ্রুত এবং কার্যকরীভাবে সম্পন্ন করতে সহায়ক।
Linear Algebra (রৈখিক অ্যালজেব্রা) হল গাণিতিক শাখা যা ভেক্টর, ম্যাট্রিক্স এবং তাদের সাথে সম্পর্কিত অপারেশন নিয়ে কাজ করে। NumPy এ Linear Algebra সম্পর্কিত বেশ কিছু গুরুত্বপূর্ণ কার্যকলাপ রয়েছে, যেমন ম্যাট্রিক্স গুণন, inverse, eigenvalues, ইত্যাদি।
NumPy-তে ম্যাট্রিক্স গুণন করতে dot()
ফাংশন বা @
অপারেটর ব্যবহার করা হয়।
import numpy as np
# দুটি ম্যাট্রিক্স তৈরি
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# ম্যাট্রিক্স গুণন
C = np.dot(A, B)
print(C)
অথবা:
C = A @ B
NumPy-তে ম্যাট্রিক্সের ডিটারমিন্যান্ট বের করার জন্য np.linalg.det()
ফাংশন ব্যবহার করা হয়।
import numpy as np
# ম্যাট্রিক্স তৈরি
A = np.array([[1, 2], [3, 4]])
# ডিটারমিন্যান্ট বের করা
det_A = np.linalg.det(A)
print(det_A)
ম্যাট্রিক্সের ইনভার্স বের করার জন্য np.linalg.inv()
ফাংশন ব্যবহার করা হয়।
import numpy as np
# ম্যাট্রিক্স তৈরি
A = np.array([[1, 2], [3, 4]])
# ম্যাট্রিক্সের ইনভার্স
inv_A = np.linalg.inv(A)
print(inv_A)
ইগেনভ্যালু এবং ইগেনভেক্টর বের করার জন্য np.linalg.eig()
ফাংশন ব্যবহার করা হয়।
import numpy as np
# ম্যাট্রিক্স তৈরি
A = np.array([[1, 2], [3, 4]])
# ইগেনভ্যালু এবং ইগেনভেক্টর বের করা
eigenvalues, eigenvectors = np.linalg.eig(A)
print("Eigenvalues:", eigenvalues)
print("Eigenvectors:", eigenvectors)
NumPy-তে random number generation এর জন্য একটি শক্তিশালী সিস্টেম রয়েছে। এটি র্যান্ডম নাম্বার, র্যান্ডম অ্যারে, প্রোবেবিলিটি ডিস্ট্রিবিউশন থেকে নমুনা নেওয়ার জন্য বিভিন্ন ফাংশন সরবরাহ করে।
np.random.randint(low, high, size)
ফাংশন ব্যবহার করে আপনি একটি নির্দিষ্ট রেঞ্জ থেকে র্যান্ডম পূর্ণসংখ্যা উৎপন্ন করতে পারেন।
import numpy as np
# 0 থেকে 10 এর মধ্যে একটি র্যান্ডম পূর্ণসংখ্যা তৈরি করা
random_int = np.random.randint(0, 10)
print(random_int)
np.random.rand(size)
ফাংশন ব্যবহার করে 0 থেকে 1 এর মধ্যে র্যান্ডম ফ্লোট সংখ্যা উৎপন্ন করা হয়।
import numpy as np
# একটি র্যান্ডম ফ্লোট সংখ্যা তৈরি করা (0 থেকে 1)
random_float = np.random.rand()
print(random_float)
np.random.rand()
বা np.random.randn()
ফাংশন ব্যবহার করে আপনি র্যান্ডম অ্যারে তৈরি করতে পারেন। randn()
ফাংশন সাধারণত গড় ০ এবং মান বিচ্যুতি ১ সহ গাউসীয় ডিস্ট্রিবিউশনের র্যান্ডম সংখ্যা তৈরি করে।
import numpy as np
# 3x3 ম্যাট্রিক্সে র্যান্ডম ফ্লোট সংখ্যা তৈরি করা
random_array = np.random.rand(3, 3)
print(random_array)
np.random.randn()
ফাংশন গাউসীয় ডিস্ট্রিবিউশন থেকে র্যান্ডম নাম্বার উৎপন্ন করে।
import numpy as np
# 2x3 ম্যাট্রিক্সে গাউসীয় ডিস্ট্রিবিউশন থেকে র্যান্ডম সংখ্যা
random_normal = np.random.randn(2, 3)
print(random_normal)
np.random.choice()
ফাংশন ব্যবহার করে আপনি একটি নির্দিষ্ট তালিকা থেকে র্যান্ডম উপাদান নির্বাচন করতে পারেন।
import numpy as np
# একটি তালিকা থেকে র্যান্ডম উপাদান নির্বাচন
items = [1, 2, 3, 4, 5]
random_choice = np.random.choice(items)
print(random_choice)
র্যান্ডম নম্বর জেনারেটরের আচরণ পুনরাবৃত্তি করতে np.random.seed()
ফাংশন ব্যবহার করা হয়। এটি একই সিড (seed) মান প্রদান করলে একই র্যান্ডম নাম্বার সিকোয়েন্স প্রদান করবে।
import numpy as np
# র্যান্ডম সিড সেট করা
np.random.seed(42)
# র্যান্ডম পূর্ণসংখ্যা তৈরি করা
random_number = np.random.randint(0, 100)
print(random_number)
NumPy হল একটি শক্তিশালী লাইব্রেরি যা Linear Algebra এবং Random Number Generation এর জন্য বিভিন্ন কার্যকরী ফাংশন সরবরাহ করে। Linear Algebra-এ ম্যাট্রিক্স গুণন, ডিটারমিন্যান্ট, ইনভার্স, ইগেনভ্যালু ইত্যাদি অপারেশন সহজেই করা যায়, এবং Random Number Generation-এ র্যান্ডম ইন্টিজার, ফ্লোট, গাউসীয় ডিস্ট্রিবিউশন থেকে নমুনা এবং আরো অনেক কিছু তৈরি করা যায়। NumPy-এর এই শক্তিশালী ফিচারগুলি বিজ্ঞান, প্রকৌশল, ডেটা সায়েন্স এবং অন্যান্য গাণিতিক কাজে ব্যবহৃত হয়।
Read more