من مترجم: هذه ترجمة لمواد Rakshit Vasudev ، الذي كان يدرس DataScience منذ فترة طويلة ويستخدم لغة Python فيه. يتحدث المؤلف عن مكتبة Numpy القوية ، والتي تتيح لك تنفيذ العديد من ميزات التعلم الآلي والعمل مع البيانات الضخمة.
Numpy هي مكتبة رياضية لـ Python. يسمح لك بإجراء جميع أنواع الحسابات بكفاءة وسرعة. إنها توسع بشكل كبير وظائف Python بفضل الحلول الخاصة المستخدمة فيها. تتحدث هذه المقالة عن الميزات الأساسية لـ Numpy ، وهذا هو الجزء الأول فقط ؛ سيتم نشر الآخرين بعد ذلك بقليل. مقالة لأولئك الذين بدأوا للتو في تعلم Numpy ، بدخول عالم الرياضيات الشجاع في Python.
توصي Skillbox بما يلي: مطور بايثون من الدورة التدريبية العملية.
نذكرك: لجميع قراء "هبر" - خصم 10000 روبل عند التسجيل في أي دورة من دورات Skillbox باستخدام الرمز الترويجي "Habr".
مكتبة استيراد
import numpy as np
عند هذه النقطة ، نقول لبيثون أن np هي المرجع لـ Numpy ، والذي سيستمر استخدامه.
الآن قم بإنشاء صفيف بيثون وصفيف np.
لا يوجد فرق كبير في الانسحاب.
print(a) print(A) ==================================================================== [1, 2, 3, 4, 5, 6, 7, 8, 9] [1 2 3 4 5 6 7 8 9]
حسنًا ، لماذا من الأفضل استخدام مصفوفة غير مرتبة بدلاً من المجموعة المعتادة؟ الجواب لأن np سيسمح لنا بإجراء الحسابات بشكل أسرع وتعديل الهيكل العام للتطبيق.
np.arange ()
np.arange(0,10,2) ==================================================================== array([0, 2, 4, 6, 8])
([start]، stop، [step]) يرتب الأرقام. هذا ما تعنيه السيارة.
نحن ننشئ قائمة np-list ، بدءًا من 0 إلى 10 ، ولكن لا تتضمن 10 ، بالإضافة إلى زيادة الأرقام بمقدار 2 في كل مرة.
وهكذا نحصل على هذا:
صفيف ([0 ، 2 ، 4 ، 6 ، 8])
من المهم أن تتذكر أن الرقم الأخير غير مدرج في القائمة.
مثال آخر:
np.arange(2,29,5) ==================================================================== array([2, 7, 12, 17, 22, 27])
يمكن أيضًا أن يسمى هذا المصفوفة مصفوفة أو ناقل. لذلك ، لا تقلق عندما أقول ، على سبيل المثال: "شكل المصفوفة هو 2 * 3." كل هذا يعني أن مجموعتنا ستبدو في النهاية مثل هذا:
array([2, 7, 12], [17, 22, 27])
الآن دعونا نتحدث عن معلمة مثل الشكل الخاص بمصفوفة np الافتراضية. الشكل هنا سمة. مثال على استخدامه أدناه.
A = [1, 2, 3, 4, 5, 6, 7, 8, 9] A.shape ==================================================================== (9,)
هذه مصفوفة أرقام ، حيث يوجد على التوالي 9 عناصر فقط. من حيث المبدأ ، مصفوفة 1 * 9 مثالية ، أليس كذلك؟
في الأساس ، نعم ، ولهذا السبب ، يتم إعادة تشكيل الشكل (). هذه طريقة تقوم بتغيير حجم المصفوفة الأصلية كما نود.
هنا مثال على استخدام إعادة التشكيل () في الممارسة.
A = [1, 2, 3, 4, 5, 6, 7, 8, 9] A.reshape(1,9) ==================================================================== array([[1, 2, 3, 4, 5, 6, 7, 8, 9]])
لاحظ أن إعادة التشكيل تعيد مصفوفة متعددة الأبعاد. يشار إلى ذلك بين قوسين مربعين في البداية. [[1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9]] هي مصفوفة محتملة متعددة الأبعاد ، على عكس [1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9].
مثال آخر:
B = [1, 2, 3, 4, 5, 6, 7, 8, 9] B.reshape(3,3) ==================================================================== array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
إذا أخذنا معلمة الشكل لـ B ، فستكون (3.3):
B.shape ==================================================================== (3,3)
دعنا ننتقل إلى np.zeros ()
ما هو موضح في هذا الرمز؟
np.zeros((4,3)) ==================================================================== ???????????
أي: يتم هنا إعطاء مصفوفة تنسيق 3 * 4 مليئة بالأصفار. هنا الاستنتاج:
np.zeros((4,3)) ==================================================================== array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])
np.zeros ((n، m)) تُرجع مصفوفة تنسيق n * m مليئة بالأصفار. كل شيء بسيط.
ماذا يفعل np.eye ()؟
تعيد إلينا مصفوفة وحدة ذات خصائص معينة.
np.eye(5) ==================================================================== array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])
كيفية مضاعفة مصفوفتين؟
لا توجد مشكلة: يتم استخدام np.dot () لهذا الغرض ، وهذه الوظيفة هي منتج عددي إذا تم تمرير المتجهات ومنتجات المصفوفة (الأكثر عادية) إليها.
مثال: أ = (2،3) و ب = (3،2). هنا عدد الأعمدة في A هو 3. عدد الصفوف في B هو 3. نظرًا لأن الخصائص تتزامن ، فإن الضرب ممكن.
أعددنا مصفوفات للتكاثر. التالي - نتصرف.
الآن دعنا نضيف العناصر الفردية إلى المصفوفة.
يضيف np.sum () عناصر إلى المصفوفة.
ومع ذلك ، لدينا خياران.
1. أضعاف الصفوف
6 - مجموع الصف الأول (1 ، 2 ، 3).
15 ثانية (4 ، 5 ، 6).
24 - الثالث (7 ، 8 ، 9).
2. أضعاف في الأعمدة
12- مجموع العمود الأول (1 ، 4 ، 7).
15- حسب الثانية (2 ، 5 ، 7).
18- حسب الثالث (3 ، 6 ، 9).
فيما يلي مقطع فيديو تم إنشاؤه بواسطة المؤلف ، حيث يتم شرح كل شيء موضح أعلاه مرة أخرى بشكل أكثر وضوحًا.
توصي Skillbox بما يلي: