"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استخراج العناصر من مصفوفة بناءً على مؤشرات في مصفوفة أخرى باستخدام فهرسة مصفوفة الأعداد الصحيحة؟

كيفية استخراج العناصر من مصفوفة بناءً على مؤشرات في مصفوفة أخرى باستخدام فهرسة مصفوفة الأعداد الصحيحة؟

تم النشر بتاريخ 2024-11-08
تصفح:212

How to Extract Elements from an Array Based on Indices in Another Array Using Integer Array Indexing?

استخدام فهرسة المصفوفة الصحيحة لاستخراج العناصر بناءً على مؤشرات المصفوفة الثانوية

في السيناريو المحدد، الهدف هو استرداد عناصر محددة من المصفوفة A باستخدام المؤشرات المحددة في المصفوفة الثانية B. بدلاً من الاعتماد على np.take أو np.choose، هناك طريقة أكثر وضوحًا تتمثل في استخدام فهرسة مصفوفة الأعداد الصحيحة في NumPy:

A[np.arange(A.shape[0]),B.ravel()]

إليك كيفية تحقيق هذا الكود للنتيجة المرجوة:

  • np.arange(A.shape[0]) ينشئ مصفوفة من الفهارس من 0 إلى (A.shape[0] - 1)، التي تمثل صفوف A.
  • B.ravel() تعمل على تسطيح B في مصفوفة أحادية البعد، مما يضمن أنها تحتوي على نفس عدد العناصر كصفوف في A.
  • عملية الفهرسة A[...] تسترد العناصر من A باستخدام فهارس الصفوف وفهرس الأعمدة من B.

هذا الأسلوب مفيد بشكل خاص عندما يكون B عبارة عن مصفوفة أحادية الأبعاد أو قائمة بمؤشرات الأعمدة. من خلال تخطي عملية التسطيح، يصبح الكود أكثر بساطة:

A[np.arange(A.shape[0]),B]

مثال:

A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([1, 0, 1])

result = A[np.arange(A.shape[0]), B]

print(result)
# Output: [1, 2, 5]
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3