إتقان NumPy: تهيئة الطرق ، عمليات ووظائف Ndarray

نشرت: 2021-01-05

Numpy عبارة عن حزمة Python تسمح بإجراء العمليات الحسابية والعددية بكفاءة عالية ووظائف مجردة على البيانات عالية الأبعاد. أثناء بناء حل التعلم الآلي لحالة استخدام عمل معينة ، يصبح من المهم للغاية تحويل البيانات بطريقة تجعل المعالجة المسبقة سهلة ، وتكون النتائج قابلة للتفسير. Numpy هي المكتبة الأساسية التي تجعل من الممكن أداء جميع الوظائف ذات الصلة بأفضل طريقة ممكنة.

جدول المحتويات

لماذا NumPy؟

مكتبات علوم البيانات الأخرى مثل Pandas و Matplotlib و Scikit-Learn مبنية على قمة Numpy بسبب طبيعتها عالية الأداء. تقدم هذه المكتبة ndarray الذي يتم استخدامه بدلاً من قوائم الثعبان التي تحمل في ثناياه عوامل. تعد قائمة Python رائعة لتخزين القيم ، ولكنها تأتي على حساب زيادة وقت التنفيذ لأنها تخزن مؤشرات مواقع الذاكرة التي تضيف عبئًا إضافيًا من حيث الذاكرة والتنفيذ.

يجد Numpy استخدامه المباشر في مجال معالجة الصور حيث تتم معالجة الصور كمصفوفات متعددة الأبعاد لإجراء تحويلات متنوعة مثل التعتيم وتغيير اللون واكتشاف الكائن.

دعنا نلقي نظرة على بعض وظائف Numpy المهمة التي يجب على كل طالب علم بيانات أن يعرفها ولكن قبل ذلك:

  1. تفترض جميع أكواد الدوال الواردة أدناه أنه تم استيراد المكتبة بالاسم المستعار np ، أي استيراد numpy كـ np.
  2. المصطلح "مصفوفة" سيُستخدم لتعريف ndarray بعد هذه النقطة.

طرق مختلفة للتهيئة

1. متباعدة خطيا

تهدف هذه الوظيفة إلى توفير مصفوفة خطية متباعدة ضمن نطاق القيم. الدالة np.linspace (بدء ، توقف ، عدد) حيث تحدد البداية والتوقف نطاق القيم وتحدد num عدد العينات ، وتُرجع قيمًا متباعدة بشكل متساوٍ بينما تُرجع np.arange (البدء ، والإيقاف ، والخطوة) قيمًا تختلف حسب قيم الخطوة.

2. قيم خاصة

في كثير من الحالات ، قد ترغب في تهيئة مصفوفة كبيرة بقيم مثل الآحاد أو الأصفار أو الهوية أو القيم الثابتة. يتم تمرير حجم المصفوفة على هيئة مجموعة. يسهل Numpy ذلك عبر وظائف مختلفة:

    • np.zeros (الحجم): العناصر صفر
    • np.ones (الحجم): العناصر هي تلك
    • np.full (الحجم ، القيمة الثابتة): العناصر عبارة عن قيمة ثابتة تم تمريرها.
    • np.eye (الحجم): العناصر القطرية هي الآحاد والباقي صفر. هذه هي مصفوفة الهوية.
    • np. فارغ (الحجم): مصفوفة فارغة
    • np.random.random (الحجم): تمت تهيئة مصفوفة القيم العشوائية بالحجم المحدد.

قراءة: أسئلة مقابلة Numpy

عمليات نداري

الغرض الرئيسي من هذه المكتبة هو إجراء حسابات فعالة بين المصفوفات المختلفة. يدعم Numpy تقريبًا جميع أنواع العمليات الحسابية والمعالجات التي يتم تطبيقها من حيث العناصر. بعضها مذكور أدناه (افترض أنه تم تهيئة صفيفين A و B من نفس الحجم بقيم عشوائية):

1. الرياضيات

  • np.add (أ ، ب): إضافة
  • np.subtract (أ ، ب): الطرح
  • np. القسمة (أ ، ب): القسمة
  • مضاعفة (أ ، ب): الضرب
  • np.exp (A): القيم الأسية
  • np.sqrt (A): قيم الجذر التربيعي
  • np.sin (A) ، cos (A) ، tan (A): القيم المثلثية
  • np.log (A): القيم اللوغاريتمية
  • np.percentile (A ، النسبة المئوية المطلوبة ، المحور): عند تمرير القيمة المئوية ، على سبيل المثال ، 50 ، ستعيد الدالة النسبة المئوية الخمسين للمصفوفة.
  • A.dot (B): إرجاع حاصل الضرب النقطي للمصفوفات
  • أ == ب: المقارنة الحكيمة للعناصر
  • np.array_equal (A، B): صفيف المقارنة الحكيمة
  • A.sum (): مجموع كل العناصر
  • A.min () ، max (): القيم الدنيا والقصوى
  • A.cumsum (): المجموع التراكمي لعناصر المصفوفة
  • A.corrcoef (): معامل الارتباط

2. التلاعب

  • np.transpose (A) أو AT: قلب المصفوفة
  • A.ravel (): لتسطيح الصفيف
  • A.reshape (new_shape): يعيد تشكيل المصفوفة (هنا مرر الحجم مباشرة دون وضعه في المجموعة). يجب أن يكون الحجم الجديد هو نفسه
  • A.resize (size): يغير شكل المصفوفة إلى أي شكل ويتجاهل العناصر الأخرى التي ليست جزءًا من هذا الشكل الجديد.
  • np.concatenate ((أ ، ب) ، المحور = 1 أو 0)
  • np.vstack ((A، B)): تكديس المصفوفات عموديًا (من ناحية الصفوف)
  • np.hstack ((A، B)): مكدس أفقي

تحقق من: Numpy مقابل Panda: الفرق بين

وظائف متنوعة

  • np.where (): هذه وظيفة أساسية تلغي الحاجة إلى عبارات if-else. يتطلب الأمر 3 حجج مهمة: الشرط ، والقيمة إذا تم استيفاء الشرط ، والقيمة إذا لم يكن كذلك. يمكن أن يكون أحد الأمثلة البسيطة على ذلك عندما يتعين عليك إجراء ثنائي لعمود استنادًا إلى عتبة معينة.
  • np.intersect1d (): ترجع هذه الدالة تقاطع صفيفين 1-d. هذا يعني أن القيم المشتركة لهذه المصفوفات يتم إرجاعها بواسطة هذه الوظيفة. إذا كانت المصفوفات التي تم تمريرها ليست 1-د ، فسيتم تسويتها.
  • np.allclose (): إنها وظيفة مثيرة للاهتمام. هناك حالات يمكنك فيها تحمل مستوى معين من التسامح أثناء مقارنة المصفوفات أو تريد اكتشاف مصفوفات مماثلة. تأخذ هذه الوظيفة المصفوفات وقيمة التفاوت التي تريدها. على سبيل المثال:
    • arr1 = np.array ([1،2،3،4])
    • arr2 = np.array ([2،3،4،5])
    • np.allclose (arr1، arr2، 0.5): سيعود False
    • np.allclose (arr1، arr2، 1): سيعود صحيح
  • argmin () و argmax () و argsort (): كما يوحي الاسم ، تعيد هذه الوظائف مؤشرات الأسماء المعنية. تُرجع A.argmin () الحد الأدنى لفهرس العنصر ، بينما تُرجع A.argmax () العكس ، وتُرجع A.argsort () مؤشرات الصفيف الذي تم فرزه. يمكن أن تكون هذه الوظائف مفيدة حيث تعتمد النتيجة على الفهرس.
  • np.clip (): يستخدم هذا لتحويل القيم ضمن نطاق معين. على سبيل المثال ، إذا احتوى المصفوفة على قيم من 1 إلى 30 وتريد القيم بين 14 إلى 27 دون أن تفقد قيمًا أخرى ، فستعمل هذه الوظيفة على زيادة القيم الأقل من 19 إلى 19 وتقليص القيم الأكبر من 27 إلى 27.

خاتمة

هناك العديد من الوظائف أثناء العمل على المصفوفات غير المعقدة ، ولكن هذه هي الوظائف الأكثر استخدامًا. العمليات المطبقة على أعمدة أو سلسلة Pandas هي في الواقع على ndarray حيث أن السلسلة أحادية البعد ndarray.

Numpy هي أداة رائعة لإنشاء بيانات مزيفة لاختبار خوارزميات معينة أو محاكاة سيناريو. يتم استخدامه على نطاق واسع في تطبيقات رؤية الكمبيوتر حيث يتم تحويل الصورة إلى مصفوفات متعددة الأبعاد لإجراء العمليات المطلوبة أو في التعلم العميق حيث يتم الاحتفاظ بأوزان الشبكة العصبية بواسطة هذه المصفوفات ndarrays.

إذا كنت مهتمًا بالتعرف على علوم البيانات ، فراجع دبلوم PG في IIIT-B & upGrad في علوم البيانات والذي تم إنشاؤه للمهنيين العاملين ويقدم أكثر من 10 دراسات حالة ومشاريع ، وورش عمل عملية عملية ، وإرشاد مع خبراء الصناعة ، 1- على - 1 مع موجهين في الصناعة ، وأكثر من 400 ساعة من التعلم والمساعدة في العمل مع الشركات الكبرى.

استعد لمهنة المستقبل

دبلوم PG من IIIT-B ، 100+ ساعة من التعلم داخل الفصل الدراسي ، 400+ ساعة من التعلم عبر الإنترنت و 360 درجة من الدعم الوظيفي
يتعلم أكثر