কম্পিউটার

NumPy পাইথনে বেসিক স্লাইসিং এবং অ্যাডভান্সড ইনডেক্সিং


ndarray-এর ইন্ডেক্সিং স্ট্যান্ডার্ড পাইথন x[obj] সিনট্যাক্স ব্যবহার করে করা যেতে পারে, যেখানে x হল অ্যারে এবং obj নির্বাচন।

তিন ধরনের ইনডেক্সিং পাওয়া যায় -

  • ক্ষেত্র অ্যাক্সেস
  • বেসিক স্লাইসিং
  • উন্নত ইন্ডেক্সিং

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

আমরা অ্যাডভান্সড ইনডেক্সিংকে দুটি ভাগে ভাগ করতে পারি -

  • পূর্ণসংখ্যা অ্যারে ইন্ডেক্সিং
  • বুলিয়ান ইনডেক্সিং

বেসিক স্লাইসিং

পাইথন স্লাইসিংয়ের মৌলিক ধারণাটি মৌলিক স্লাইসিং-এ n মাত্রায় প্রসারিত হয়। পাইথন স্লাইস অবজেক্টের মতো যা স্লাইস ফাংশনে স্টার্ট, স্টপ এবং স্টেপ প্যারামিটার দিয়ে তৈরি করা হয়। নির্দিষ্ট আউটপুট পেতে, একটি অ্যারের একটি অংশ বের করতে স্লাইস অবজেক্টটি অ্যারেতে পাঠানো হয়।

উদাহরণ 1

numpy nparr =np.arange(25)s =slice(2, 21, 4)print (arr[s]) হিসাবে আমদানি করুন

আউটপুট

[ 2 6 10 14 18] 

উপরের উদাহরণে, আমরা প্রথমে arange() ফাংশন ব্যবহার করে একটি ndarray অবজেক্ট (arr) তৈরি করেছি। তারপর একটি স্লাইস অবজেক্ট তৈরি করা হয় স্টার্ট, স্টপ এবং স্টেপ ভ্যালু নির্ধারণ করে (গুলি)। যখন আমরা ndarray-এ স্লাইস অবজেক্ট পাস করি, তখন আমরা অ্যারের অংশ (স্লাইস) পাই যা সূচী 2 থেকে শুরু করে 21 পর্যন্ত 4-এর একটি ধাপ সহ।

উপরের প্রোগ্রামটি লেখার আরেকটি উপায়,

# উপরে programimport numpy লেখার আরেকটি উপায় nparr =np.arange(25)s =arr[2:21:4]প্রিন্ট(গুলি)

আউটপুট

[ 2 6 10 14 18] 

একক আইটেম স্লাইস করুন

 nparr =np.arange(10)s =arr[9]মুদ্রণ(গুলি)

আউটপুট

9

সূচী থেকে শুরু করে স্লাইস আইটেম

nparr =np.arange(10)s =arr[3:]মুদ্রণ(গুলি)

আউটপুট

[3 4 5 6 7 8 9]

সূচীপত্রের মধ্যে আইটেম স্লাইস করুন

 nparr =np.arange(10)s =arr[3:7]মুদ্রণ(গুলি)

আউটপুট

[3 4 5 6] 

উপরের দুটি পদ্ধতি বহু-মাত্রিক ndarray-তেও প্রয়োগ করা হবে, নিচের মত −

nparr =np.array([[[1],[2],[3]], [[4],[5],[6]], [[7], [৮], [৯]])s =arr[1:]মুদ্রণ(গুলি)

আউটপুট

[[[4][5][6]][[7][8][9]]]

উন্নত ইন্ডেক্সিং

পূর্ণসংখ্যা অ্যারে ইন্ডেক্সিং:

আসুন পূর্ণসংখ্যার সাথে একটি সাধারণ অ্যারে তৈরি করি

arr=np.array([[1,2],[3,4],[5,6]])print(arr)

আউটপুট

[[1 2][3 4][5 6]]

চলুন অ্যারে থেকে একটি নির্দিষ্ট উপাদান নির্বাচন করার চেষ্টা করি, যেমন বহুমাত্রিক ndarray থেকে সারি সূচক [0, 1, 2] এবং কলাম সূচক [1, 0, 1] সহ উপাদান৷

nparr=np.array([[1,2],[3,4],[5,6]])s =arr[[0, 1, 2],[1, 0, 1 হিসাবে
numpy আমদানি করুন ]]মুদ্রণ(গুলি)

আউটপুট

[2 3 6]

0 সূচী দিয়ে নির্বাচন করলে আপনি প্রথম সারি পাবেন −

>>> arr=np.array([[1,2],[3,4],[5,6]])>>> print(arr[0])[1 2] 

একইভাবে, আমরা অ্যারে থেকে একটি আইটেম নির্বাচন করতে পারি, উদাহরণস্বরূপ- সারি সূচক হিসাবে 1 এবং কলাম সূচক উপাদান হিসাবে 1 নির্বাচন করুন যা 4 এর অ্যারের মান দেয়।

>>> প্রিন্ট(arr[[1], [1]])[4] 

আমরা যোগ করার মতো পাটিগণিত অপারেশন করতে পারি এবং যোগ করার পর একটি নির্দিষ্ট সূচকের মান ফেরত দিতে পারি।

>>> প্রিন্ট(arr[[1], [1]]+ 1)[5] 

যেহেতু আমরা দেখতে পাচ্ছি সূচকের মান 1 দ্বারা বৃদ্ধি পেয়েছে কিন্তু প্রকৃত অ্যারে একই থাকে৷

>>> অ্যারেরে([[1, 2],[3, 4],[5, 6]])

কিন্তু আমরা অ্যারের মান পরিবর্তন করতে পারি এবং একটি অ্যারের নতুন কপি ফেরত দিতে পারি।

>>> arr[[1], [1]] +=1>>> অ্যারারে([[1, 2],[3, 5],[5, 6]])

বুলিয়ান ইনডেক্সিং

আমরা বুলিয়ান ইনডেক্সিং ব্যবহার করতাম যখন ফলাফল বুলিয়ান অপারেশনের ফলাফল হতে যাচ্ছে।

>>> arr=np.array([[[0,1,2], [3,4,5], [6,7,8], [9,10,11]])>>> অ্যারে ([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]])

1.

মান প্রদান করে
>>> arr[arr ==1]অ্যারে([1])

জোড় সংখ্যা

মান প্রদান করে
>>> arr[arr %2 ==0]array([ 0, 2, 4, 6, 8, 10])

  1. পাইথন লিস্ট কম্প্রিহেনশন এবং স্লাইসিং?

  2. Numpy-এ Flatten() এবং Ravel() এর মধ্যে পার্থক্য

  3. পাইথন বেসিক তারিখ এবং সময় প্রকার

  4. পাইথন ব্যবহার করে একটি অ্যারের তালিকায় 0 এবং 1 আলাদা করবেন?