NumPy Searching Arrays
جستجو آرایهها
میتوانید آرایهها را برای یافتن یک مقدار مشخص جستجو کنید و در صورت موجود بودن آن در آرایه شماره ایندکس آن را برگردانید.
برای جستجو در آرایه از تابع شیء where()
استفاده میشود.
در مثال زیر دنبال جایی هستیم که مقدار آرایه در آن ایندکس برابر ۴ است.
چنانکه ملاحظه میکنید خروجی کد بالا یک تاپل است که نشان میدهد ۴ در ایندکسهای ۳، ۵ و ۶ وجود دارد.
در زیر مثال دیگری آورده شده است که در آن ایندکسهایی برگردانده میشوند که مقدار موجود در آنها زوج باشد.
تابع شیء ()searchsorted
تابع شیءای به اسم searchsorted()
وجود دارد که یک جستجوی دودویی (باینری) را در آرایه انجام میدهد. خروجی آن ایندکسهایی هستند که مقدار مشخص شده باید در آنجا قرار داشته باشد تا ترتیب جستجو حفظ شود.
searchsorted()
آن است که روی آرایههای مرتب شده (sorted arrays) جستجو انجام میشود.
در مثال زیر دنبال ایندکسی هستیم که عدد ۷ باید آنجا قرار بگیرد.
خروجی کد بالا این را به ما میگوید که عدد ۷ باید در ایندکس ۱ قرار داده شود تا نحوه مرتب شدن آرایه حفظ شود.
جستجو از سمت چپ شروع شده و اولین ایندکسی که بعد از آن دیگر عدد ۷ بزرگتر نیست برگردانده میشود. یعنی چپترین ایندکس ممکن برگردانده میشود. اگر بخواهید جستجو از سمت راست انجام شود و راستترین ایندکس موجود برگردانده شود به صورت زیر عمل کنید.
جستجو برای بیش از یک مقدار
اگر بخواهید جستجو را برای بیش از یک مقدار انجام دهید، کافی است که مقادیر مورد نظر خود را در یک آرایه بنویسید، مانند مثال زیر.
مقدار برگردانده شده یک آرایه است. چنانکه ملاحظه میکنید مقادیر این آرایه ایندکسهایی هستند که باید اعداد ۲، ۴ و ۶ در آنجا قرار بگیرند تا نحوه مرتب شدن آرایه حفظ شود.