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

নামপাই অ্যারে: বেগাইনারদের জন্য গাইড

একটি লিস্ট হলো একটি ডেটা টাইপ যেটি এলিমেন্টের একটি অর্ডারড সিকোয়েন্স ধারণ করে। লিস্ট একটি উপকারী ডেটা টাইপ কারণ এটি একাধিক সম্পর্কিত মান একটি ভেরিয়েবলে সংরক্ষণ করতে দেয়। একটি লিস্ট দিয়ে আপনি ১০ জোড়া জুতোর নাম একে ভেরিয়েবলে সংরক্ষণ করতে পারেন; একটি স্টোর থেকে কেনাকাটার লিস্ট একে ভেরিয়েবলে রাখতে পারেন।

বিল্ট-ইন লিস্ট ডেটা টাইপ ইতিমধ্যে শক্তিশালী হলেও, আরও অ্যাডভান্সড ইউজ কেসের জন্য আপনি এটিকে অপর্যাপ্ত পেতে পারেন। সেখানে নামপাইর অ্যারে ডেটা টাইপটি কাজে আসে। নামপাই লাইব্রেরি ব্যবহার করে সহজে একাধিক ডাইমেনশন वाले অ্যারে তৈরি করা যায়।

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

নামপাই অ্যারে কী?

নামপাই অ্যারে হলো নামপাই পাইথন লাইব্রেরি ব্যবহৃত অ্যারে অবজেক্ট। নামপাই, যেটি Numerical Python-এর সংক্ষিপ্ত রূপ, একটি প্যাকেজ যা প্রায়শই সায়েন্টিফিক এবং ম্যাথেমেটিক্যাল কম্পিউটিংয়ের জন্য ব্যবহার হয়। এটি ডেটা অ্যানালাইসিস এবং অ্যাডভান্সড ম্যাথের সাথে সাহায্য করার জন্য টুলসের একটি রেঞ্জের সাথে সुसজ্জিত।

ভ্যানিলা পাইথনে (বাহ্যিক প্যাকেজ ছাড়া পাইথন), অ্যারে শক্তিশালী হলেও প্রসেস করতে ধীর হতে পারে। অন্যদিকে, নামপাই অ্যারে ট্র্যাডিশনাল পাইথন অ্যারের চেয়ে অর্ডার্স অফ ম্যাগনিটিউড দ্রুত হতে লক্ষ্য করে।

এই পারফরম্যান্স বুস্ট অর্জিত হয় কারণ নামপাই অ্যারে মেমরির একটি সতত জায়গায় ভ্যালু সংরক্ষণ করে। এতে পাইথনের জন্য লিস্ট অ্যাক্সেস এবং ম্যানিপুলেট করা সহজ হয়।

নামপাই অ্যারে ডিক্লেয়ার কীভাবে করবেন

শুরু করি, একটি নামপাই অ্যারে সেট আপ করে। এই টিউটোরিয়ালে, আমরা আমাদের অ্যারেতে স্ট্রিং ভ্যালু সংরক্ষণ করব। এই স্ট্রিং ভ্যালুগুলো একটি লোকাল কফি শপে উপলব্ধ মিষ্টি 아이টেমের লিস্ট। আমরা নামপাই লাইব্রেরি ইম্পোর্ট করে শুরু করব:

import numpy as np

এই লাইন কোড পাইথন থেকে numpy ইম্পোর্ট করে এবং লাইব্রেরিকে np নাম দেয়। এর মানে যখনই আমাদের অ্যারে নিয়ে কাজ করতে হবে, আমাদের শুধু np কল করলেই হবে।

পরবর্তী, আমরা অ্যারে ইন্টারফেস ব্যবহার করে আমাদের অ্যারে ডিক্লেয়ার করব:

treats = np.array(["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"])
print(treats)

আমাদের অ্যারে তিনটি স্ট্রিং ভ্যালু ধারণ করে। ট্র্যাডিশনাল পাইথন অ্যারের মতো, আমরা আমাদের লিস্টের সকল আইটেমকে স্কোয়ার ব্র্যাকেটের মধ্যে রাখেছি। নামপাই অ্যারে ডিক্লেয়ার করতে, আমরা np-এর অংশ olan array মেথডটি ব্যবহার করেছি। এটি একটি ndarray অবজেক্ট তৈরি করে, যেটি বিল্ট-ইন নামপাই অ্যারে টাইপ।

আমাদের কোড আমাদের অরিজিনাল অ্যারের একটি কপি রিটার্ন করে, নামপাই অ্যারে হিসেবে সংরক্ষিত:

['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread']

বাস: এখন আমাদের কাছে একটি অ্যারে আছে যেটির সাথে আমরা কাজ করতে পারি।

নামপাই অ্যারে: ডাইমেনশন

নামপাই-এ ডাইমেনশন কথা বলার সময়, আমরা সিনেমার মতো নতুন ওয়ার্ল্ড বোঝাতে চাই না। একটি অ্যারেতে ডাইমেনশন হলো সেই অ্যারেতে এক লেভেল ডেপথ। ডাইমেনশন টার্মটি ব্যবহার করা হলে, এটিকে নেস্টেড অ্যার বোঝায়। এগুলো অ্যারে যেগুলো অ্যারে ধারণ করে।

একটি অ্যারে যেকোনো সংখ্যক ডাইমেনশন 가질 수 있습니다। আপনি যেসব অ্যারে নিয়ে সবচেয়ে বেশি কাজ করবেন, সেগুলো বেশিরভাগ সময় ১-ডি, ২-ডি, অথবা ৩-ডি অ্যারে হবে। "ডি" মানে ডাইমেনশন।

নামপাই ১-ডি অ্যারে

আমাদের প্রথম উদাহরণে, আমরা একটি ১-ডি অ্যারে তৈরি করেছি। এটি এমন একটি অ্যারে যেটি ০-ডি অ্যারে (অথবা আইটেম) কন্টেন্ট হিসেবে ধারণ করে। আপনি যেসব অ্যারে নিয়ে অধিকাংশ কাজ করবেন, সেগুলো ১-ডি হবে।

চলুন কফি শপে মিষ্টি আইটেমগুলোর প্রাইস সংরক্ষণকারী একটি অ্যারে তৈরি করি:

import numpy as np
prices = np.array([1.95, 2.00, 2.05])
print(prices)

আমাদের কোড এক ডাইমেনশনে একটি অ্যারে রিটার্ন করে, আমাদের ভ্যালুগুলো সংরক্ষিত: [1.95 2. 2.05]।

১-ডি অ্যারে থেকে একটি এলিমেন্ট অ্যাক্সেস করতে, আপনি পাইথন লিস্টের মতো একই সিনট্যাক্স ব্যবহার করতে পারেন। চলুন আমাদের লিস্টের দ্বিতীয় আইটেম রিট্রিভ করি:

print(prices[1])

আমাদের কোড ইন্ডেক্স ভ্যালু ১ 가진 আইটেমটি রিটার্ন করে, যেটি: 2।

পাইথন অ্যারে সম্পর্কে আরও জানতে, পাইথন অ্যারে নিয়ে আমাদের বেগাইনার গাইড পড়ুন।

নামপাই ২-ডি অ্যারে

সকল অ্যারে ১-ডি নয়। ধরুন, আমরা এমন একটি অ্যারে সংরক্ষণ করতে চাই যেটি দুটি অ্যারে ধারণ করে। একটি অ্যারে কফি শপে বিক্রয় হওয়া মিষ্টি আইটেমের লিস্ট সংরক্ষণ করে; অন্যটি শপে বিক্রয় হওয়া কফির লিস্ট। একসাথে, এগুলো একটি menu items অ্যারে তৈরি করে।

নামপাই ব্যবহার করে এই অ্যারে তৈরি করি:

import numpy as np
menu_items = np.array([
    ["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"],
    ["Cappuccino", "Espresso", "Mocha"]
])
print(menu_items)

ফলাফল অ্যারেটি:

[['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread'] ['Cappuccino' 'Espresso' 'Mocha']]

আমাদের নতুন তৈরি অ্যারেতি দুটি ডাইমেনশন আছে। আমাদের অ্যারেতে প্রথম অ্যারে মিষ্টি আইটেমের লিস্ট ধারণ করে; দ্বিতীয় অ্যারে কফির লিস্ট ধারণ করে। লক্ষ্য করুন যে, এই দুটি অ্যারে স্কোয়ার ব্র্যাকেটের একটি জোড়ার মধ্যে এনক্লোজ করা হয়েছে যা দুটি অ্যারে কানেক্ট করে।

২-ডি অ্যারে থেকে আইটেম রিট্রিভ করা নামপাই-এ পাইথনের চেয়ে কিছুটা ভিন্নভাবে কাজ করে। ২-ডি অ্যারে থেকে এলিমেন্ট অ্যাক্সেস করতে, আপনাকে আপনি যেই ভ্যালুটি রিট্রিভ করতে চান তার ইন্ডেক্স নম্বরগুলোকে আলাদা করতে হবে।

এই কোড বিবেচনা করুন:

print(menu_items[0, 2])

আমাদের কোড রিটার্ন করে: Jammy Shortbread। আমরা ইন্ডেক্স ভ্যালু ২ 가진 আইটেমটি রিট্রিভ করেছি যেটি ইন্ডেক্স ভ্যালু ০ 가진 অ্যারেতে সংরক্ষিত। এই কেসে, আমরা কফি শপে বিক্রয় হওয়া মিষ্টি আইটেম সংরক্ষণকারী অ্যারেতে শেষ আইটেমটি রিট্রিভ করেছি।

নামপাই ৩-ডি অ্যারে

আর একটি ডাইমেনশন যোগ করি! নামপাই অ্যারে ৩-ডি অ্যারে ধারণ করতে পারে। এটি এমন একটি অ্যারে যেটি ২-ডি অ্যারে ধারণ করে।

ধরুন, আমরা নিম্নলিখিত ভ্যালুগুলো সংরক্ষণ করতে চাই:

  • মিষ্টি এবং অ-মিষ্টি ফুড অফারিং (জোড়া করা হলেও আলাদা অ্যারেতে); এবং
  • ক্যাফিনযুক্ত এবং অ-ক্যাফিনযুক্ত ড্রিংক (জোড়া, আলাদা অ্যারেতে);

এই সকল ভ্যালু একই অ্যারেতে সংরক্ষণ করা উচিত। এই অ্যারেতের ডাইমেনশনগুলো:

  • ১-ডি: সকল মেনু আইটেম
  • ২-ডি: মিষ্টি এবং অ-মিষ্টি ফুড, ক্যাফিনযুক্ত এবং অ-ক্যাফিনযুক্ত ড্রিংক
  • ৩-ডি: মিষ্টি ফুড, অ-মিষ্টি ফুড, ক্যাফিনযুক্ত, অ-ক্যাফিনযুক্ত ড্রিংক

নামপাই ব্যবহার করে এই অ্যারে তৈরি করি। একটি পাইথন ফাইলে নিচের কোড পেস্ট করুন:

import numpy as np
menu_items = np.array([
    [
        ["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"],
        ["Smoked Bacon Roll", "Tuna Melt Panini", "Cheese and Tomato Toastie"]
    ],
    [
        ["Cappuccino", "Espresso", "Mocha"],
        ["Apple Juice", "Water", "Orange Juice"]
    ]
])
print(menu_items)

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

[[['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread'] ['Smoked Bacon Roll' 'Tuna Melt Panini' 'Cheese and Tomato Toastie']] [['Cappuccino' 'Espresso' 'Mocha'] ['Apple Juice' 'Water' 'Orange Juice']]]

আমরা পূর্বে আলোচনা করা সকল তথ্য সহ একটি ৩-ডি অ্যারে তৈরি করেছি। এই অ্যারেটি কফি শপ দ্বারা অফার করা সকল মেনু আইটেমের একটি কমপ্রিহেনসিভ লিস্ট।

৩-ডি অ্যারে থেকে আইটেম অ্যাক্সেস করা ২-ডি অ্যারে থেকে আইটেম অ্যাক্সেস করার সিনট্যাক্সের মতোই কাজ করে। পার্থক্য হলো ৩-ডি অ্যারে থেকে আইটেম রিট্রিভ করতে আপনাকে থার্ড ইন্ডেক্স নম্বর স্পেসিফাই করতে হবে। চলুন আমাদের অ্যারেতে "Mocha" রিট্রিভ করি:

print(menu_items[1, 0, 2])

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

১ হলো ১ম ডাইমেনশনের ইন্ডেক্স নম্বর যেটি আমরা অ্যাক্সেস করতে চাই (১ হলো ড্রিংকসের সাথে মিলে); ০ হলো ২য় ডাইমেনশনের ইন্ডেক্স নম্বর (০ হলো ক্যাফিনযুক্ত ড্রিংকস); ২ হলো ৩য় ডাইমেনশনের ইন্ডেক্স নম্বর (২ হলো Mocha)।

অ্যারেতে ডাইমেনশন কাউন্ট করা

নামপাই অ্যারে নতুন ডাইমেনশন যোগ করা শুরু করলে কाफি জটিল দেখতে লাগতে পারে। আমরা তিন ডাইমেনশন سے বেশি ডাইমেনশন 가진 অ্যারে এক্সপ্লোর করি নাই! আপনার সুবিধার্থে, একটি অ্যারেতে কতগুলো ডাইমেনশন আছে তা ক্যালকুলেট করার জন্য একটি হ্যান্ডি শর্টকাট আছে।

একটি পাইথন ফাইলে নিচের কোড পেস্ট করুন:

import numpy as np
menu_items = np.array([
    ["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"],
    ["Cappuccino", "Espresso", "Mocha"]
])
print(menu_items.ndim)

কোড রান করি। ভ্যালু "২" রিটার্ন হয়। এটি আমাদের বলে যে আমাদের অ্যারেতে দুটি ডাইমেনশন আছে, যা আমরা উপরের অ্যারে آنালাইজ করে দেখতে পাচ্ছি।

উপসংহার

নামপাই অ্যারে সিমিলার ভ্যালু সংরক্ষণ করার একটি ফ্লেক্সিবল উপায়। এগুলো ট্র্যাডিশনাল পাইথন অ্যারের চেয়ে দ্রুত এবং দক্ষ। আপনি নামপাই অ্যারে ব্যবহার করে সহজে একাধিক ডাইমেনশন নিয়ে কাজ করতে পারেন; ভ্যানিলা পাইথনে এটি করা কঠিন।

এখন আপনি একজন এক্সপার্ট প্রোগ্রামারের মতো নামপাই অ্যারে ব্যবহার শুরু করতে পারেন!

  1. অ্যারে রোটেশনের পাইথন প্রোগ্রাম

  2. উইন্ডোজে OS-কে SSD-এ ট্রান্সফার করার ধাপে ধাপে গাইড (শুরुआতকারীদের জন্য)

  3. Google Photos新手指南

  4. চিট ইঞ্জিন (Complete Guide) বिगিনারদের জন্য