السلام عليكم
سيتناول درس اليوم المواضيع التالية:
-
التلاعب بشكل المصفوفة (تغيير الشكل، دمج مصفوفتين، تجزئة مصفوفة واحدة الى عدة مصفوفات، النسخ وانواع العرض للمصفوفات).
-
مجموعة من الدوال العامة للتلاعب بالمصفوفات
نبدأ على بركة الله
تغيير شكل المصفوفة:
تستخدم دالة (shape) لعرض ابعاد المصفوفة (عدد الصفوف والاعمدة والابعاد الاخرى ان وجدت) وتستخدم كما في المثال ادناه:
والان لتحويل المصفوفة الى بعد واحد نستطيع استخدام دالة (ravel) وكما في المثال التالي:
الصورة اعلاه تبين عدة امثلة للدوال التالية:
transpose لعرض المصفوفة مع قلب الصفوف اعمدة والاعمدة صفوف
reshape لعرض شكل جديد للمصفوفة (بدون تغيير الشكل الاصلي)
resize لتغيير شكل المصفوفة الاصلية بشكل نهائي
ملاحظة: اذا استخدمنا ابعاد بأرقام سالبة فمعناها البدء بالحساب من اليمين الى اليسار (اي قلب الصفوف وقلب الاعمدة) وكما في الامثلة التالية:
دمج عدة مصفوفات سوية:
نستطيع استخدام الادوات التالية:
vstack((a,b)) وضع المصفوفة الثانية اسفل المصفوفة الاولى
hstack((a,b)) وضع المصفوفة الثانية الى يمين المصفوفة الاولى
column_stack((a,b)) يستخدم فقط للمصفوفات احادية البعد ويضع المصفوفة الثانية اسفل المصفوفة الاولى
row_stack((a,b)) يستخدم فقط للمصفوفات احادية البعد ويضع المصفوفة الثانية يمين المصفوفة الاولى
الامثلة التالية توضح ذلك:
بالنسبة للمصفوفات ذات الابعاد اكثر من بعدين:
hstack تقوم برزم المصفوفات بعد البعد الثاني
vstack ترزم المصفوفات بعد البعد الاول
تجزئة المصفوفة الواحدة الى اجزاء اصغر:
ويتم بأستخدام دالة hsplit وكما في الامثلة التالية:
نسخ المصفوفات ونسخ واجهات المصفوفات
حين نتلاعب بالمصفوفات فبعض الاحيان نقوم بنسخ المصفوفة الى مصفوفة اخرى وفي احيان اخرى يتم نسخ واجهة المصفوفة (نسخ سطحي) فقط وليست المصفوفة كعنصر كامل وفي الامثلة التالية تتضح الامور اكثر:
في حالة قول (a=b) فهذا لا يعني نسخ المصفوفة كعنصر او كبيانات وانما كواجهة فقط وكما في ادناه:
اذا اردنا ان ننسخ بيانات مصفوفة في مصفوفة اخرى بدون انشاء عنصر جديد نستخدم دالة view وكما في ادناه:
واخيراً لنسخ مصفوفة بشكل كامل الى مصفوفة اخرى نستخدم دالة (copy) وكما في الامثلة التالية:
طبعاً هذه فقط مجموعة بسيطة من الدوال الكثيرة التي توفرها مكتبة NumPy للتعامل مع المصفوفات للأغراض العلمية وللأطلاع على بقية الدوال يمكن زيارة الروابط التالية:
لأنشاء المصفوفات
arange, array, copy, empty, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r, zeros, zeros_like
للتحويل بين المصفوفات
astype, atleast 1d, atleast 2d, atleast 3d, mat
للتلاعب بالمصفوفات
array split, column stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, item, newaxis, ravel, repeat, reshape, resize, squeeze, swapaxes, take, transpose, vsplit, vstack
للسؤال عن حالة المصفوفات
all, any, nonzero, where
لترتيب المصفوفة
argmax, argmin, argsort, max, min, ptp, searchsorted, sort
العمليات على المصفوفات
choose, compress, cumprod, cumsum, inner, fill, imag, prod, put, putmask, real, sum
احصائيات اولية لبيانات المصفوفات
cov, mean, std, var
دوال الجبر الخطي للمصفوفات
cross, dot, outer, svd, vdot
الى هنا ينتهي درس اليوم على امل ان يكون مفيداً للجميع
كالعادة لا تترددوا في ترك اسئلتكم واستفساراتكم في التعليقات وسنجيب عنها في اقرب فرصة
اذا اعجبكم المحتوى فنتمنى مشاركتنا نشره في كل مكان لتعميم الفائدة
تحياتي للجميع
اخوكم مصطفى صادق لطيف
قام بإعادة تدوين هذه على Site Title.
إعجابإعجاب