> For the complete documentation index, see [llms.txt](https://raqueeb.gitbook.io/scikit-learn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://raqueeb.gitbook.io/scikit-learn/tools/test-page.md).

# নামপাই

পাইথন দিয়ে ডাটা সাইন্স এর কাজ করতে চাইলে ‘নামপাই’ একদম গোড়ার প্যাকেজ। মানে এটা ছাড়া চলবে না। সাইন্টিফিক কম্পুটিং এর ‘অ্যারে’র সব কাজ করে এই ‘নামপাই’ ডাটা স্ট্রাকচার। যদি হাই লেভেল ম্যাথমেটিক্যাল ফাংশনের কথা বলি, তাহলেও দরকার এই ‘নামপাই’কে। লিনিয়ার এলজেব্রা, ফোরিয়ের ট্রান্সফর্মেশন, আবার শুধুমাত্র র‌্যান্ডম নাম্বার জেনারেটর হিসেবেও এর কাজ অসাধারণ।

তবে, একদম ভয় পাবেন না। এগুলোকে আমাদের করতে হবে না। এমুহুর্তে তো নয়ই। মেশিন লার্নিং এর ভেতরের সাইন্টিফিক কম্পুটিং করার জন্যই আমরা ব্যবহার করছি ‘নামপাই’। সত্যি কথা বলতে ‘সাইকিট-লার্ন’ দাঁড়িয়ে আছে নামপাই অ্যারে ডাটা স্ট্রাকচারের ওপর। ‘সাইকিট-লার্ন’ আসলে ডাটা নেয় ‘নামপাই’ অ্যারে থেকে। আমরা বাইরে থেকে যতো ডাটা নেই না কেন সেটাকে প্রথমে কনভার্ট করতে হবে এই নামপাই অ্যারেতে। নামপাই এর কোর ‘ফাংশনালিটি’ হচ্ছে এনডি-অ্যারে, মানে ‘এন’ সংখ্যক ডাইমেনশনাল অ্যারে নিয়ে ডাটা স্ট্রাকচারে।

একটা অ্যারে তৈরি করে দেখাই এখানে।

```
> import numpy as np
> x = np.array([1, 2, 3])
> x
আউটপুট 
>> array([1, 2, 3])
```

অথবা, একটা রেঞ্জ লেখি&#x20;

```
> y = np.arange(10)  
> y
আউটপুট 
>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
```

নামপাই এর অ্যারেকে স্লাইসিং, আমাদের আইরিস ডেটাসেটকে এক্সেস করতে লাগবে।&#x20;

```
import numpy as np
# আমরা একটা অ্যারে তৈরি করি যার শেপ হচ্ছে (৩, ৪)
# [[ 1  2  3  4]
#  [ 5  6  7  8]
#  [ 9 10 11 12]]
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])

# স্লাইসিং করে আমরা একটা সাব-অ্যারে বের করে নিয়ে আসি শুধুমাত্র প্রথম দুটো সারি থেকে 
# প্রথমে চারটা কলাম, পরে দুটো - দুটো অ্যারে শেপ দিয়ে (২, ৪) এবং (২, ২) 
b = a[:2, 1:3]
c = a[:2]

print(c)
#[[1 2 3 4]
# [5 6 7 8]]

print(b)
#[[2 3]
# [6 7]]
```
