مصفوفات البحث في NumPy
البحث في المصفوفات
يمكنك البحث في مصفوفة عن قيمة معينة ، وإرجاع الفهارس التي تحصل على تطابق.
للبحث في مصفوفة ، استخدم where()
الطريقة.
مثال
أوجد الفهارس حيث تكون القيمة 4:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x =
np.where(arr == 4)
print(x)
المثال أعلاه سيعيد tuple:(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 أكبر من القيمة التالية.
ابحث من الجانب الأيمن
بشكل افتراضي ، يتم إرجاع معظم الفهرس الأيسر ، ولكن يمكننا 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 أقل من القيمة التالية.
قيم متعددة
للبحث عن أكثر من قيمة ، استخدم مصفوفة بالقيم المحددة.
مثال
ابحث عن الفهارس حيث يجب إدراج القيم 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 في المصفوفة الأصلية للحفاظ على الترتيب.