ورقة غش NumPy
نظام NumPy هو امتداد حسابي عددي مفتوح المصدر للغة Python. يمكن استخدام هذه الأداة لتخزين ومعالجة المصفوفات الكبيرة، وهي أكثر كفاءة بكثير من بنية القائمة المتداخلة الخاصة بلغة Python (والتي يمكن استخدامها أيضًا لتمثيل المصفوفات).
توضيح
استخدم arr لتمثيل كائن مصفوفة numpy.
استيراد الوحدة
import numpy as npالاستيراد/التصدير
| np.loadtxt(‘file.txt’) | القراءة من ملف نصي |
| np.genfromtxt(‘file.csv’,delimiter=’,’) | القراءة من ملف CSV |
| np.savetxt(‘file.txt’,arr,delimiter=’ ‘) | الكتابة في ملف نصي |
| np.savetxt(‘file.csv’,arr,delimiter=’,’) | الكتابة في ملف CSV |
إنشاء مصفوفة
| np.array([1,2,3]) | مصفوفة أحادية الأبعاد |
| np.array([(1,2,3),(4,5,6)]) | مصفوفة ثنائية الأبعاد |
| np.zeros(3) | مصفوفة أحادية الأبعاد بطول 3 جميعها أصفار |
| np.ones((3,4)) | مصفوفة 3x4 جميع قيمها 1 |
| np.eye(5) | مصفوفة 5x5 مع الرقم 1 على القطر و0 في أماكن أخرى (مصفوفة الوحدة) |
| np.linspace(0,100,6) | مصفوفة من 6 قيم متباعدة بالتساوي من 0 إلى 100 |
| np.arange(0,10,3) | مصفوفة من القيم من 0 إلى أقل من 10 بخطوة 3 (مثل [0،3،6،9]) |
| np.full((2,3),8) | مصفوفة 2x3 جميع قيمها 8 |
| np.random.rand(4,5) | مصفوفة 4x5 من الأرقام العشرية العشوائية بين 0-1 |
| np.random.rand(6,7)*100 | مصفوفة 6x7 من الأرقام العشرية العشوائية بين 0-100 |
| np.random.randint(5,size=(2,3)) | مصفوفة 2x3 بأرقام صحيحة عشوائية بين 0-4 |
فحص الخصائص
| arr.size | إرجاع العدد الإجمالي لعناصر المصفوفة |
| arr.shape | إرجاع أبعاد المصفوفة |
| arr.dtype | إرجاع نوع العناصر في المصفوفة |
| arr.astype(dtype) | تحويل نوع عنصر المصفوفة إلى dtype |
| arr.tolist() | تحويل المصفوفة إلى قائمة |
| np.info(np.eye) | عرض وثائق np.eye |
النسخ/الترتيب/إعادة التشكيل
| np.copy(arr) | نسخ arr إلى ذاكرة جديدة |
| arr.view(dtype) | إنشاء عرض لعناصر arr بنوع dtype |
| arr.sort() | ترتيب arr |
| arr.sort(axis=0) | ترتيب محور معين من arr |
| two_d_arr.flatten() | تسطيح المصفوفة ثنائية الأبعاد إلى أحادية الأبعاد |
| arr.T | تبديل مصفوفة arr (الصفوف تصبح أعمدة والعكس صحيح) |
| arr.reshape(3,4) | إعادة تشكيل arr إلى 3 صفوف و4 أعمدة دون تغيير البيانات |
| arr.resize((5,6)) | تغيير شكل arr إلى 5x6 وملء القيم الجديدة بـ 0 |
إضافة/حذف العناصر
| np.append(arr,values) | إلحاق القيم بنهاية arr |
| np.insert(arr,2,values) | إدراج القيم في arr قبل الفهرس 2 |
| np.delete(arr,3,axis=0) | حذف الصف في الفهرس 3 من arr |
| np.delete(arr,4,axis=1) | حذف العمود في الفهرس 4 من arr |
الدمج/التقسيم
| np.concatenate((arr1,arr2),axis=0) | إضافة arr2 كصفوف إلى نهاية arr1 |
| np.concatenate((arr1,arr2),axis=1) | إضافة arr2 كأعمدة إلى نهاية arr1 |
| np.split(arr,3) | تقسيم arr إلى 3 مصفوفات فرعية |
| np.hsplit(arr,5) | تقسيم arr أفقيًا عند الفهرس الخامس |
الفهرسة/التقطيع/تكوين المجموعات الفرعية
| arr[5] | إرجاع العنصر الموجود في الفهرس 5 |
| arr[2,5] | إرجاع عنصر المصفوفة ثنائية الأبعاد في الفهرس [2][5] |
| arr[1]=4 | تعيين القيمة 4 لعنصر المصفوفة في الفهرس 1 |
| arr[1,3]=10 | تعيين القيمة 10 لعنصر المصفوفة في الفهرس [1][3] |
| arr[0:3] | إرجاع العناصر في الفهرس 0,1,2 (في المصفوفة ثنائية الأبعاد: إرجاع الصفوف 0,1,2) |
| arr[0:3,4] | إرجاع العناصر في الصفوف 0,1,2 في العمود 4 |
| arr[:2] | إرجاع العناصر في الفهرس 0,1 (في المصفوفة ثنائية الأبعاد: إرجاع الصفوف 0,1) |
| arr[:,1] | إرجاع العناصر في الفهرس 1 في جميع الصفوف |
| arr<5 | إرجاع مصفوفة بقيم بولية |
| (arr1<3) & (arr2>5) | إرجاع مصفوفة بقيم بولية |
| ~arr | عكس مصفوفة بولية |
| arr[arr<5] | إرجاع عناصر المصفوفة الأصغر من 5 |
العمليات الحسابية القياسية (السكالار)
| np.add(arr,1) | إضافة 1 لكل عنصر في المصفوفة |
| np.subtract(arr,2) | طرح 2 من كل عنصر في المصفوفة |
| np.multiply(arr,3) | ضرب كل عنصر في المصفوفة في 3 |
| np.divide(arr,4) | قسمة كل عنصر في المصفوفة على 4 (ترجع np.nan للقسمة على صفر) |
| np.power(arr,5) | رفع كل عنصر في المصفوفة إلى القوة الخامسة |
العمليات الحسابية الموجهة (الفيكتور)
| np.add(arr1,arr2) | إضافة arr2 إلى arr1 عنصرًا بعنصر |
| np.subtract(arr1,arr2) | طرح arr2 من arr1 عنصرًا بعنصر |
| np.multiply(arr1,arr2) | ضرب arr1 في arr2 عنصرًا بعنصر |
| np.divide(arr1,arr2) | قسمة arr1 على arr2 عنصرًا بعنصر |
| np.power(arr1,arr2) | رفع عناصر arr1 إلى قوة عناصر arr2 |
| np.array_equal(arr1,arr2) | إرجاع True إذا كانت المصفوفات لها نفس العناصر والشكل |
| np.sqrt(arr) | الجذر التربيعي لكل عنصر في المصفوفة |
| np.sin(arr) | جيب الزاوية (Sine) لكل عنصر في المصفوفة |
| np.log(arr) | اللوغاريتم الطبيعي لكل عنصر في المصفوفة |
| np.abs(arr) | القيمة المطلقة لكل عنصر في المصفوفة |
| np.ceil(arr) | التقريب لأعلى إلى أقرب عدد صحيح |
| np.floor(arr) | التقريب لأسفل إلى أقرب عدد صحيح |
| np.round(arr) | التقريب لأقرب عدد صحيح |
الإحصاء
| np.mean(arr,axis=0) | إرجاع المتوسط على طول محور معين |
| arr.sum() | إرجاع مجموع arr |
| arr.min() | إرجاع القيمة الصغرى لـ arr |
| arr.max(axis=0) | إرجاع القيمة العظمى لمحور معين |
| np.var(arr) | إرجاع تباين المصفوفة |
| np.std(arr,axis=1) | إرجاع الانحراف المعياري لمحور معين |
| arr.corrcoef() | إرجاع معامل الارتباط للمصفوفة |