NumPy একটি শক্তিশালী লাইব্রেরি যা পাইথনে বহুমাত্রিক অ্যারে এবং ম্যাট্রিক্স তৈরির জন্য ব্যবহৃত হয়। এটি গাণিতিক গণনা এবং ডেটা বিশ্লেষণকে খুব সহজ এবং দ্রুত করে তোলে। এখানে NumPy দিয়ে অ্যারে এবং ম্যাট্রিক্স ম্যানিপুলেশন কীভাবে করা যায়, তার বিস্তারিত আলোচনা করা হলো।
১. NumPy দিয়ে Array তৈরি করা
NumPy দিয়ে অ্যারে তৈরি করার জন্য np.array() ফাংশন ব্যবহার করা হয়। এই ফাংশনটি একটি তালিকা (list) বা অন্যান্য iterable ডেটা স্ট্রাকচারকে NumPy অ্যারে তে রূপান্তরিত করে।
উদাহরণ:
import numpy as np
# একটি 1D অ্যারে তৈরি করা
arr_1d = np.array([1, 2, 3, 4, 5])
print("1D Array:", arr_1d)
# একটি 2D অ্যারে তৈরি করা
arr_2d = np.array([[1, 2], [3, 4], [5, 6]])
print("2D Array:\n", arr_2d)
আউটপুট:
1D Array: [1 2 3 4 5]
2D Array:
[[1 2]
[3 4]
[5 6]]
২. Array এর আকার এবং আকার পরিবর্তন করা
NumPy দিয়ে অ্যারের আকার চেক করতে এবং অ্যারের আকার পরিবর্তন করতে shape এবং reshape() ফাংশন ব্যবহার করা হয়।
উদাহরণ:
# অ্যারের আকার চেক করা
print("Shape of arr_1d:", arr_1d.shape)
# 1D অ্যারে থেকে 2D অ্যারে তৈরী করা
arr_reshaped = arr_1d.reshape(5, 1)
print("Reshaped 2D Array:\n", arr_reshaped)
আউটপুট:
Shape of arr_1d: (5,)
Reshaped 2D Array:
[[1]
[2]
[3]
[4]
[5]]
৩. Array এর ভিন্ন ভিন্ন ধরণের তৈরি করা
NumPy এ কিছু বিশেষ ধরনের অ্যারে তৈরির জন্য np.zeros(), np.ones(), এবং np.arange() ফাংশন ব্যবহার করা হয়।
উদাহরণ:
# সব 0 দিয়ে একটি অ্যারে তৈরি করা
zeros_array = np.zeros((3, 3)) # 3x3 অ্যারে
print("Zeros Array:\n", zeros_array)
# সব 1 দিয়ে একটি অ্যারে তৈরি করা
ones_array = np.ones((2, 4)) # 2x4 অ্যারে
print("Ones Array:\n", ones_array)
# একটি নির্দিষ্ট সীমার মধ্যে সংখ্যা তৈরি করা
range_array = np.arange(10, 20, 2) # 10 থেকে 20 পর্যন্ত 2 এর ব্যবধানে
print("Range Array:", range_array)
আউটপুট:
Zeros Array:
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
Ones Array:
[[1. 1. 1. 1.]
[1. 1. 1. 1.]]
Range Array: [10 12 14 16 18]
৪. Matrix (2D Array) ম্যানিপুলেশন
এখন আমরা ম্যাট্রিক্সের সাথে কিছু সাধারণ অপারেশন শিখবো, যেমন যোগফল, গুণফল, ট্রান্সপোজ, এবং ডেটার একত্রিতকরণ।
৪.১ ম্যাট্রিক্স যোগফল (Matrix Addition)
# দুটি 2D অ্যারে যোগ করা
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
result = np.add(arr1, arr2)
print("Matrix Addition:\n", result)
আউটপুট:
Matrix Addition:
[[ 6 8]
[10 12]]
৪.২ ম্যাট্রিক্স গুণফল (Matrix Multiplication)
# দুটি 2D অ্যারে গুণ করা
result = np.dot(arr1, arr2)
print("Matrix Multiplication:\n", result)
আউটপুট:
Matrix Multiplication:
[[19 22]
[43 50]]
৪.৩ ম্যাট্রিক্স ট্রান্সপোজ (Matrix Transpose)
# 2D অ্যারের ট্রান্সপোজ করা
arr_transpose = np.transpose(arr1)
print("Matrix Transpose:\n", arr_transpose)
আউটপুট:
Matrix Transpose:
[[1 3]
[2 4]]
৫. Array এর উপাদান নির্বাচন এবং ফিল্টার করা
NumPy এর মাধ্যমে অ্যারের নির্দিষ্ট উপাদান নির্বাচন করা বা কিছু শর্তের ভিত্তিতে ফিল্টার করা যেতে পারে।
৫.১ Array এর নির্দিষ্ট উপাদান নির্বাচন
# 2D অ্যারের একটি নির্দিষ্ট উপাদান নির্বাচন করা
element = arr_2d[1, 1] # দ্বিতীয় সারি, দ্বিতীয় কলাম
print("Selected Element:", element)
আউটপুট:
Selected Element: 4
৫.২ Array ফিল্টার করা
# একটি শর্তে অ্যারে ফিল্টার করা
arr = np.array([1, 2, 3, 4, 5, 6])
filtered_arr = arr[arr > 3] # যেগুলোর মান 3 এর বেশি
print("Filtered Array:", filtered_arr)
আউটপুট:
Filtered Array: [4 5 6]
৬. Array অপারেশন
NumPy অ্যারে দিয়ে কিছু গাণিতিক অপারেশন যেমন যোগ, বিয়োগ, গুণ, ভাগ করা যায়।
উদাহরণ:
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])
# যোগফল
print("Addition:", arr1 + arr2)
# বিয়োগ
print("Subtraction:", arr1 - arr2)
# গুণফল
print("Multiplication:", arr1 * arr2)
# ভাগফল
print("Division:", arr1 / arr2)
আউটপুট:
Addition: [ 6 8 10 12]
Subtraction: [-4 -4 -4 -4]
Multiplication: [ 5 12 21 32]
Division: [0.2 0.33333333 0.42857143 0.5 ]
সারাংশ
NumPy দিয়ে Array এবং Matrix ম্যানিপুলেশন অত্যন্ত সহজ এবং দ্রুত করা যায়। আপনি অ্যারে তৈরি, আকার পরিবর্তন, গাণিতিক অপারেশন, ট্রান্সপোজ, মেট্রিক্স গুণফল এবং আরও অনেক কিছু করতে পারেন। এটি ডেটা বিশ্লেষণ, মেশিন লার্নিং, এবং ডিপ লার্নিং প্রকল্পের জন্য একটি অত্যন্ত গুরুত্বপূর্ণ টুল।
Read more