NumPy การค้นหาแบบฟอร์ม

বিন্যাস সোর্চ

আপনি কোনও মূল্যকে বিন্যাসে সোর্চ করতে পারেন এবং মাত্র ম্যাচকৃত ইন্ডেক্সগুলো ফিরে দেবেন。

কোনও বিন্যাস সোর্চ করতে, ব্যবহার করুন: where() পদ্ধতি。

ইনস্ট্যান্স

মূল্য 4-এর ইন্ডেক্স সনাক্ত করুন:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x = np.where(arr == 4)
print(x)

ইনস্ট্যান্স চালু করুন

এই উদাহরণটি একটি ট্যুপল ফিরে দেবে:(array([3, 5, 6],)

অর্থাৎ মূল্য 4 ইন্ডেক্স 3, 5 এবং 6-এ পাওয়া যায়。

ইনস্ট্যান্স

সংখ্যা সমতম ইন্ডেক্স সনাক্ত করুন:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 0)
print(x)

ইনস্ট্যান্স চালু করুন

ইনস্ট্যান্স

সংখ্যা অধিকতম ইন্ডেক্স সনাক্ত করুন:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 1)
print(x)

ইনস্ট্যান্স চালু করুন

সোর্ট সোর্চ

একটি নাম searchsorted() এই পদ্ধতিটি কোনও বিন্যাসের মধ্যে দ্বিপদ্ধতিগত অনুসন্ধান করে এবং কোনও নির্দিষ্ট মূল্যকে সুরক্ষিত অনুসন্ধান ক্রমে সামিল করার জন্য ইন্ডেক্স ফিরে দেয়。

ধারণা searchsorted() পদ্ধতি সার্ভিং এবং ক্রমানুসারে তালিকা ব্যবহার করে।

ইনস্ট্যান্স

কোথায় 7-এর মাঝে এন্টার করা হবে তা খুঁজুন:

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7)
print(x)

ইনস্ট্যান্স চালু করুন

উদাহরণ ব্যাখ্যা:ক্রমবর্ধমান ক্রমানুসারে 7-এর মাঝে 1-এর সূচকে 7-এর মাঝে এন্টার করা হবে。

এই পদ্ধতি সম্মুখদিক থেকে খুঁজে, এবং 7-এর মাঝে একটি মান যা পরবর্তী মান থেকে বেশি না হবে, প্রথম সূচক ফিরিয়ে দেয়。

ডানদিক থেকে খুঁজুন

ডিফল্টভাবে, সবচেয়ে ডানদিকের সূচক ফিরিয়ে দেয়, কিন্তু আমরা দেওয়ার মাধ্যমে করতে পারি side='right'যার মাধ্যমে সবচেয়ে ডানদিকের সূচক ফিরিয়ে দেয়。

ইনস্ট্যান্স

ডানদিক থেকে 7-এর মাঝে এন্টার করা হবে তা খুঁজুন:

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7, side='right')
print(x)

ইনস্ট্যান্স চালু করুন

উদাহরণ ব্যাখ্যা:ক্রমবর্ধমান ক্রমানুসারে 7-এর মাঝে 2-এর সূচকে 7-এর মাঝে এন্টার করা হবে。

এই পদ্ধতি ডানদিক থেকে খুঁজে, এবং 7-এর মাঝে একটি মান যা পরবর্তী মান থেকে কম না হবে, প্রথম সূচক ফিরিয়ে দেয়。

একাধিক মান

একাধিক মান সংরক্ষণ করতে, মানগুলোর সমূহ ব্যবহার করুন。

ইনস্ট্যান্স

কোথায় 2, 4 এবং 6-এর মাঝে এন্টার করা হবে তা খুঁজুন:

import numpy as np
arr = np.array([1, 3, 5, 7])
x = np.searchsorted(arr, [2, 4, 6])
print(x)

ইনস্ট্যান্স চালু করুন

ফলাফলটি একটি আকার হয়:[1 2 3] তিনটি সূচক রয়েছে, যারগুলোতে 2, 4, 6 এবং মূল আকারের সাথে ক্রমবর্ধমান ক্রমানুসারে এন্টার করা হবে。