কম্পিউটার টিউটোরিয়াল

NumPy কনক্যাটেনেট: একটি গাইড

NumPy অ্যারে কনক্যাটেনেট করার পদ্ধতি

NumPy পাইথনে অ্যারে নিয়ে কাজ করার জন্য একটি অতুল্য লাইব্রেরি। এটি সবকিছু কভার করে অ্যারে তৈরি করার থেকে শুরু করে সাইজের নির্বিশেষে অ্যারে ম্যানিপুলেট করার পর্যন্ত। তাই কোনো আশ্চর্য নহीं যে NumPy একটি ইউটিলিটি নিয়ে আসে যা আপনি অ্যারে কনক্যাটেনেট করতে ব্যবহার করতে পারেন।

numpy.concatenate() মেথডটি দুটি বা ততোধিক অ্যারে একটি সিঙ্গল অ্যারেতে জোইন করে।

এই গাইডে, আমরা NumPy অ্যারে কী এবং আপনি সেগুলো কীভাবে কনক্যাটেনেট করতে পারেন সেটি আলোচনা করব। আমরা শুরু করতে হেল্প করার জন্য কয়েকটি উদাহরণের মাধ্যমে যাব। চলুন শুরু করি!

একটি অ্যারের স্ট্রাকচার

একটি NumPy অ্যারে হল একটি টাইপের অ্যারে যা NumPy লাইব্রেরির সাথে কাজ করে। এটি যেকোনো অন্যান্য অ্যারের মতো দেখায় কিন্তু এটি একটি ndarray অবজেক্টের ভিতরে স্টোর করা থাকে:

array([1, 2, 3])

NumPy অ্যারে নিয়ে কাজ করতে, আমাদের numpy লাইব্রেরি ইম্পোর্ট করতে হবে:

import numpy as np

আমরা দুটি অ্যারে কনক্যাটেনেট করব। একটি অ্যারে ১ থেকে ৯ (ইনক্লুসিভ) পর্যন্ত সব সংখ্যা ধারণ করবে। দ্বিতীয় অ্যারে ১০ থেকে ১৮ (ইনক্লুসিভ) পর্যন্ত সব সংখ্যা ধারণ করবে।

চলুন এই অ্যারেগুলো arange() মেথড ব্যবহার করে তৈরি করি:

first_array = np.arange(1, 10).reshape(3, 3)
second_array = np.arange(10, 19).reshape(3, 3)
print(first_array)
print(second_array)

এই কোডটি দুটি অ্যারে তৈরি করে। প্রতিটি অ্যারে একটি 2d অ্যারে। আমরা reshape() মেথড ব্যবহার করে এই অ্যারেগুলোকে 2d বানিয়েছি যা প্রতিটি অ্যারে জন্য একটি ৩x৩ গ্রিড তৈরি করে:

[[1 2 3] [4 5 6] [7 8 9]] [[10 11 12] [13 14 15] [16 17 18]]

আমাদের এখন দুটি অ্যারে আছে जिनके সাথে আমরা কাজ করতে পারি! চলুন concatenate() ব্যবহার করে সেগুলো কনক্যাটেনেট করি।

NumPy কনক্যাটেনেশন

আপনি একটি অ্যারে দুটি অক্ষে কনক্যাটেনেট করতে পারেন: রো অনুযায়ী বা কলাম অনুযায়ী। এটি concatenate() মেথড ব্যবহার করে সম্পন্ন করা হয়। কনক্যাটেনেট মেথড 1d, 2d, 3d, 4d, এবং উচ্চতর ডাইমেনশনের অ্যারে মার্জ করতে পারে।

রো অনুযায়ী কনক্যাটেনেট

আমরা আমাদের দুটি অ্যারে রো অনুযায়ী কনক্যাটেনেট করার সাথে শুরু করব। এটি আমাদের দুটি অ্যারের আইটেমগুলোকে রো অনুযায়ী অ্যালাইন করে এবং সেগুলোকে একটি অ্যারেতে মার্জ করবে:

final_array = np.concatenate((first_array, second_array))
print(final_array)

আমরা concatenate() ফাংশনের ভিতরে একটি টাপল স্পেসিফাই করেছি। এই টাপলে उन অ্যারেগুলোর লিস্ট রয়েছে যেগুলো আমরা কনক্যাটেনেট করতে চাই। কোনো প্যারামিটার ছাড়া, concatenate() রো অনুযায়ী কনক্যাটেনেট করে।

আমাদের কোড রিটার্ন করে:

[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12] [13 14 15] [16 17 18]]

আমাদের অ্যারেগুলো রো অনুযায়ী কনক্যাটেনেটেড।

কলাম অনুযায়ী কনক্যাটেনেট

আপনি দুটি অ্যারে কলাম অনুযায়ী মার্জ করতে concatenate মেথড ব্যবহার করতে পারেন।

এটি করতে, আমাদের একটি নতুন প্যারামিটার ব্যবহার করতে হবে: axis। ডিফল্টভাবে, এই মান ০। এটি x অক্ষ বা রো অক্ষের সাথে কোরেসপন্ড করে। আমরা এই মান ওভাররাইড করে ১ সেট করতে পারি। এটি আমাদের দুটি অ্যারে কলাম অনুযায়ী মার্জ করবে।

চলুন আমাদের দুটি অ্যারে কলাম অনুযায়ী কনক্যাটেনেট করি:

final_array = np.concatenate((first_array, second_array), axis=1)
print(final_array)

আমাদের কোড আমাদের লাস্ট উদাহরণের quase একই। পার্থক্য হল আমরা axis=1 প্যারামিটার স্পেসিফাই করেছি। চলুন দেখি আমাদের কোড রান করলে কী হয়:

[[ 1 2 3 10 11 12] [ 4 5 6 13 14 15] [ 7 8 9 16 17 18]]

আমাদের অ্যারেগুলো কলাম অনুযায়ী মার্জ করা হয়েছে। 

দুটির অধিক অ্যারে কনক্যাটেনেট করা

concatenate() মেথড যেকোনো সংখ্যক অ্যারে কনক্যাটেনেট করতে পারে। চলুন হরিজন্টাল অক্ষে তিনটি অ্যারে কনক্যাটেনেট করার চেষ্টা করি। আমরা যে অ্যারেগুলোর সাথে কাজ করব সেগুলো সব সংখ্যা ধারণ করে রেঞ্জে:

  • ১ থেকে ৯ (ইনক্লুসিভ)।
  • ১০ থেকে ১৮ (ইনক্লুসিভ)।
  • ১৯ থেকে ২৭ (ইনক্লুসিভ)।

চলুন আমাদের অ্যারেগুলো পাইথনে ডিফাইন করি:

first_array = np.arange(1, 10).reshape(3, 3)
second_array = np.arange(10, 19).reshape(3, 3)
third_array = np.arange(19, 28).reshape(3, 3)

পরবর্তীতে, আমরা concatenate ব্যবহার করে সেগুলো একসাথে মার্জ করতে পারি:

final_array = np.concatenate((first_array, second_array, third_array), axis=1)
print(final_array)

আমরা আমাদের তিনটি অ্যারেকে concatenate() মেথডে একটি টাপল হিসেবে স্পেসিফাই করেছি। একসাথে কম্বাইন করা হলে, এই অ্যারেগুলো ১ থেকে ২৭ পর্যন্ত সব সংখ্যার সাথে কোরেসপন্ড করে। 

চলুন আমাদের প্রোগ্রাম রান করি:

[[ 1 2 3 10 11 12 19 20 21] [ 4 5 6 13 14 15 22 23 24] [ 7 8 9 16 17 18 25 26 27]]

আমাদের তিনটি অ্যারে এখন "final_array" ভেরিয়েবলে অ্যাসাইন করা হয়েছে। আমরা এই ভেরিয়েবলটি কনসোলে প্রিন্ট করেছি যাতে দেখা যায় আমাদের অ্যারেগুলো সফলভাবে মার্জ হয়েছে।

উপসংহার

NumPy concatenate() মেথডটি দুটি বা ততোধিক NumPy অ্যারে জোইন করে। অ্যারেগুলো ডিফল্টভাবে ভার্টিক্যাল অক্ষে জোইন করা হয়। আপনি axis=1 ফ্ল্যাগ ব্যবহার করে অ্যারেগুলো হরিজন্টাল অক্ষে জোইন করতে পারেন।

আপনি দুটি বা ততোধিক 1d অ্যারে vstack এবং hstack মেথড ব্যবহার করে কনক্যাটেনেট করতে পারেন। concatenate() এই মেথডগুলোর চেয়ে বেশি দক্ষ। concatenate() 2d, 3d, এবং উচ্চতর ডাইমেনশন অ্যারে কনক্যাটেনেট করার সাপোর্টও করে।

এখন আপনি NumPy অ্যারে কনক্যাটেনেট করার জন্য পাইথন এক্সপার্টের মতো রেডি!

  1. দুটি NumPy অ্যারের মধ্যে ইন্টারসেকশন (intersection) বের করার পদ্ধতি

  2. পাইথনে NumPy অ্যারেতে সোর্ট ফাংশন কীভাবে প্রয়োগ করবেন?

  3. পাইথনে NumPy অ্যারে ব্রডকাস্টিং (Broadcasting)

  4. পাইথনে দুটি অ্যারের ইন্টারসেকশন II