Numpy পরিচিতি
দ্রষ্টব্য: এখন থেকে কোডগুলো করা হবে Python 3 এ, আপনি যদি Python 2 সেটাপ দিয়ে থাকেন তাহলে একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করে Python 3 সেটাপ দিয়ে দিন, আগের কোডগুলো Python 3 এ রূপান্তরিত করার প্রক্রিয়া চলছে।
আপনার Numpy না থাকলে কমান্ড উইন্ডো / টার্মিনালে নিচের কোড লিখুন,
pip install numpy scipy matplotlib ipython jupyter pandas sympy nose
আর আপনি অ্যানাকোন্ডা সেটাপ দিয়ে থাকলে আপনার পিসিতে অলরেডি Numpy ইন্সটলড আছে। কোন সমস্যা দেখা দিলে এই ডকুমেন্টেশন দেখুন।
গ্রেডিয়েন্ট ডিসেন্ট আমরা চাইলে একাধিক লুপ অ্যাপ্লাই করে সিঙ্গেল এলিমেন্ট দিয়ে করতে পারি কিন্তু সেটা মোটেও এফিশিয়েন্ট হবে না। মেশিন লার্নিংয়ের জন্য কম্পিউটেশন টাইম কমানোটা খুবই গুরুত্বপূর্ণ। আর সেটা করতে হলে আমাদের অবশ্যই Numpy লাইব্রেরির উপর ভাল দখল থাকতে হবে। ধীরে ধীরে সমস্যা সমাধানের মাধ্যমে Numpy লাইব্রেরির উপরে এমনিতেই দক্ষতা চলে আসবে।
সায়েন্টিফিক কম্পিউটেশনের জন্য মূলত Numpy ব্যবহার করা হয়। মেশিন লার্নিং সমস্যা গুলোতে হাই ডাইমেনশনাল অ্যারে নিয়ে কাজ করতে হয় সেকারণে আমাদের এমন ধরণের টুল দরকার যেটা এই ধরণের হাই ডাইমেনশনাল অ্যারে নিয়ে খুবই ফাস্ট কাজ করতে পারে। Numpy হল এমন ধরণের একটি লাইব্রেরি। MATLAB এ আমরা যেভাবে অ্যারে নিয়ে কাজ করে থাকি, Numpy কে আমরা সেক্ষেত্রে Python এর MATLAB ইন্টারফেস বলতে পারি। তবে বেশ কিছু ভিন্নতাও আছে।
পুরোপুরি জানার জন্য নামপাইয়ের ডকুমেন্টেশন যথেষ্ট। তবে এখানে আমি গুরুত্বপূর্ণ নিয়ে আলোচনা করব। তাহলে শুরু করা যাক।
Numpy Array হল কতগুলো ভ্যালুর গ্রিড। এবং সবগুলা ভ্যালুর টাইপ একই, মানে
float
, int64
, int8
ইত্যাদি।একটা অ্যারের ডাইমেনশন যত তাকে আমরা Rank বলে থাকি । যেমন 2 Dimensional Numpy Array কে আমরা বলব
Rank 2
Array। Numpy এ অ্যারের Shape
Integer
এর একটা Tuple
যেখানে প্রতিটি ডাইমেনশনে কতগুলি এলিমেন্ট আছে সেটা প্রকাশ করে।নিচের উদাহরণ দেখা যাক,
import numpy as np
a = np.array([1, 2, 3]) # Creates a rank 1 array
print (type(a)) # Prints "<class 'numpy.ndarray'>"
print (a.shape) # Prints "(3,)"
print (a[0], a[1], a[2]) # Prints "1 2 3"