• 0

إيجاد فهرس مجموعة من المصفوفة في مصفوفة numpy

لدي مصفوفة بالشكل التالي:

x = np.array([[0,  1],	# 0
              [2,  3],	# 1
              [4,  5],	# 2
              [6,  7],	# 3
              [8,  9]])	# 4

وأريد أن أقوم بإيجاد الفهرس الخاص بكل صف في المصفوفة التالي:

search_array = np.array([[0,  1],
    [4,  5],
    [8,  9]
])

من المفترض أن تكون النتيجة كالتالي:

[0, 2, 4]

كيف أقوم بعمل هذا الأمر باستخدام مكتبة numpy؟

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


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

يمكن استخدام أيٍ من الطرق التالية:

 

x = np.array([[0,  1],	# 0
              [2,  3],	# 1
              [4,  5],	# 2
              [6,  7],	# 3
              [8,  9]])	# 4


search_array = np.array([[0,  1],
    [4,  5],
    [8,  9]
])

# الطريقة الأولى

#  فيما عدا ذلك false  في حالة التساوي و  true  في هذه الطريقة سنقوم بالمقارنة بين المصفوفتين و سيتم إرجاع 

>>> x == search_array
array([[ True, True],
       [ False,  False],
       [ True,  True],
       [ False,  False],
       [ True,  True],
      ], dtype=bool)


# الطريقة الثانية 
>>> np.all(x == search_array,axis=1)
array([True,  False, True, False , True], dtype=bool)

# الطريقة الثالثة 
#  where في حال تساوي الأصفف و بعدها التابع  true و الذي سيقوم بإرجاع  all باستخدام التابع 
# true و الدي سيقوم بإرجاع الفهرس الخاص بالعناصر التي لها القيمة 

>>> np.where(np.all(x == search_array,axis=1))
(array([0, 2, 4]),)

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يمكنك إستخدام دالة np.where لإيجاد الفهرس مثلما في الكود

x = np.array([[0,  1],	# 0
              [2,  3],	# 1
              [4,  5],	# 2
              [6,  7],	# 3
              [8,  9]])	# 4
# البحث عن فهرس القيم الذي تساوي 1
np.where(x == 1)

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يمكنك إيجاد عنصر في قائمة بإستخدام الدالة index للقوائم وذلك بتحويل المصفوفات كما موضح في البرنامج التالي:

def find(myarray, elements):
  myarray = myarray.tolist()
  elements = elements.tolist()
  indices = []
  for element in elements:
    indices.append(myarray.index(element))
  return indices

والان لتنفيذ المثال يمكننا مناداة الدالة المعرفة:

import numpy as np

x = np.array([[0,  1],	# 0
              [2,  3],	# 1
              [4,  5],	# 2
              [6,  7],	# 3
              [8,  9]])	# 4

xx = np.array([[0,  1],
    [4,  5],
    [8,  9]])    
       
find(x,xx)

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن