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

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

Fahmy Mostafa

السؤال

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

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؟

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

Recommended Posts

  • 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

يمكنك إستخدام دالة 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)

 

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

  • 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)

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...