الجمع بين المصفوفات وأنواع البيانات المتعددة في NumPy
تطرح الرغبة في سلسلة المصفوفات التي تحتوي على أنواع بيانات مختلفة في مصفوفة واحدة مع أنواع البيانات المقابلة في كل عمود تحديا. من الأساليب الشائعة، باستخدام np.concatenate()، للأسف تحويل المصفوفة بأكملها إلى نوع بيانات سلسلة، مما يؤدي إلى عدم كفاءة الذاكرة.
للتغلب على هذا القيد، يتضمن الحل القابل للتطبيق استخدام صفائف السجل أو الصفائف المنظمة.
مصفوفات السجلات
تسمح مصفوفات السجلات بالوصول إلى حقول البيانات الفردية من خلال السمات. من خلال تحديد نوع البيانات لكل حقل، يمكن دمج أنواع بيانات متعددة في صفيف واحد:
import numpy as np
a = np.array(['a', 'b', 'c', 'd', 'e'])
b = np.arange(5)
records = np.rec.fromarrays((a, b), names=('keys', 'data'))
print(records)
الإخراج:
rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], dtype=[('keys', '|S1'), ('data', '<i8')])
المصفوفات المنظمة
المصفوفات المنظمة هي مشابه، مما يوفر القدرة على تحديد نوع البيانات لكل عمود. ومع ذلك، فهي لا تدعم الوصول إلى السمات مثل صفائف السجلات:
arr = np.array([('a', 0), ('b', 1)],
dtype=([('keys', '|S1'), ('data', 'i8')]))
print(arr)
الإخراج:
array([('a', 0), ('b', 1)], dtype=[('keys', '|S1'), ('data', '<i8')])
الاختيار بين السجل والمصفوفات المنظمة
يعتمد الاختيار بين صفائف السجل والمصفوفات المنظمة على حالات الاستخدام الفردية. توفر صفائف السجلات سهولة الوصول إلى السمات، بينما قد تكون المصفوفات المنظمة مفضلة لهياكل البيانات الأكثر تعقيدًا. يوفر كلا الأسلوبين طريقة ملائمة لدمج المصفوفات مع أنواع البيانات المختلفة في NumPy، مما يوفر المرونة والكفاءة في معالجة البيانات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3