مصفوفات البحث في 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 في المصفوفة الأصلية للحفاظ على الترتيب.


اختبر نفسك مع التمارين

ممارسه الرياضه:

استخدم طريقة NumPy الصحيحة للعثور على جميع العناصر ذات القيمة 4.

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

x = np.(arr == 4)