اذهب إلى المحتوى
  • 0

كيف أجد القيمة الأقرب في مصفوفة numpy في بايثون؟

TheProgrammer

السؤال

Recommended Posts

  • 0

هنالك طرق متعددة لمعرفة أقرب قيمة لقيمة معينة في مصفوفة في بايثون حسب حالة المصفوفة، فإذا كانت المصفوفة مرتبة وكبيرة للغاية فأسرع حل هو استخدام دالة تأخذ معاملين؛ الأول المصفوفة والثانية القيمة التي تريد البحث عن أقرب رقم لها في المصفوفة:

def find_nearest(array,value):
    idx = np.searchsorted(array, value, side="left")
    if math.fabs(value - array[idx-1]) < math.fabs(value - array[idx]):
        return array[idx-1]
    else:
        return array[idx]

هذه الدالة ستعمل بشكل سريع في المصفوفات الكبيرة ويمكنك بسهولة تغييرها لترتيب المصفوفة إذا كنت غير متأكد من ترتيبها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك إنجاز ذلك بطريقة أفضل وأسرع بكثير وأبسط، بالشكل التالي:

import numpy as np
def closest(arr, K):
	return (np.abs(arr - K)).argmin()

مثلاً:

arr = np.array([3.64, 5.2, 9.42, 9.35, 8.5, 8])
K = 9.1
print(closest(arr, K)) # 9.35

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...