Ndarray هو كائن مصفوفة ذات أبعاد n محددة في numpy والذي يخزن مجموعة من نفس النوع من العناصر. بمعنى آخر، يمكننا تعريف ndarray على أنه مجموعة من كائنات نوع البيانات (dtype).
يمكن الوصول إلى كائن ndarray باستخدام الفهرسة المستندة إلى 0. يحتوي كل عنصر في كائن Array على نفس الحجم في الذاكرة.
إنشاء كائن ndarray
يمكن إنشاء كائن ndarray باستخدام روتين الصفيف الخاص بالوحدة النمطية numpy. لهذا الغرض، نحن بحاجة إلى استيراد numpy.
>>> a = numpy.array
النظر في الصورة أدناه.
يمكننا أيضًا تمرير كائن مجموعة إلى روتين المصفوفة لإنشاء مصفوفة ذات أبعاد n مكافئة. ويرد بناء الجملة أدناه.
>>> numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
يتم وصف المعلمات في الجدول التالي.
SN | معامل | وصف |
---|---|---|
1 | هدف | إنه يمثل كائن المجموعة. يمكن أن تكون قائمة أو صفًا أو قاموسًا أو مجموعة وما إلى ذلك. |
2 | dtype | يمكننا تغيير نوع بيانات عناصر المصفوفة عن طريق تغيير هذا الخيار إلى النوع المحدد. الافتراضي هو لا شيء. |
3 | ينسخ | إنه اختياري. بشكل افتراضي، يكون صحيحًا مما يعني أنه تم نسخ الكائن. |
4 | طلب | يمكن أن يكون هناك 3 قيم محتملة مخصصة لهذا الخيار. يمكن أن يكون C (ترتيب الأعمدة)، R (ترتيب الصفوف)، أو A (أي) |
5 | تم اختباره | ستكون المصفوفة التي تم إرجاعها عبارة عن مصفوفة من الفئة الأساسية بشكل افتراضي. يمكننا تغيير هذا لجعل الفئات الفرعية تمر عبر ضبط هذا الخيار على صحيح. |
6 | ndmin | إنه يمثل الحد الأدنى لأبعاد المصفوفة الناتجة. |
لإنشاء صفيف باستخدام القائمة، استخدم بناء الجملة التالي.
>>> a = numpy.array([1, 2, 3])
لإنشاء كائن صفيف متعدد الأبعاد، استخدم بناء الجملة التالي.
>>> a = numpy.array([[1, 2, 3], [4, 5, 6]])
لتغيير نوع بيانات عناصر المصفوفة، اذكر اسم نوع البيانات مع المجموعة.
أمر ويندوز ARP
>>> a = numpy.array([1, 3, 5, 7], complex)
إيجاد أبعاد المصفوفة
ال هذا أنا يمكن استخدام الدالة للعثور على أبعاد المصفوفة.
>>> import numpy as np >>> arr = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [9, 10, 11, 23]]) >>> print(arr.ndim)
العثور على حجم كل عنصر من عناصر المصفوفة
يتم استخدام الدالة itemsize للحصول على حجم كل عنصر في المصفوفة. تقوم بإرجاع عدد البايتات التي يأخذها كل عنصر من عناصر الصفيف.
النظر في المثال التالي.
مثال
#finding the size of each item in the array import numpy as np a = np.array([[1,2,3]]) print('Each item contains',a.itemsize,'bytes')
انتاج:
stringformat
Each item contains 8 bytes.
العثور على نوع البيانات لكل عنصر صفيف
للتحقق من نوع البيانات لكل عنصر صفيف، يتم استخدام الدالة dtype. خذ بعين الاعتبار المثال التالي للتحقق من نوع بيانات عناصر الصفيف.
مثال
#finding the data type of each array item import numpy as np a = np.array([[1,2,3]]) print('Each item is of the type',a.dtype)
انتاج:
Each item is of the type int64
العثور على شكل وحجم المصفوفة
للحصول على شكل وحجم المصفوفة، يتم استخدام دالة الحجم والشكل المرتبطة بالمصفوفة numpy.
النظر في المثال التالي.
مثال
import numpy as np a = np.array([[1,2,3,4,5,6,7]]) print('Array Size:',a.size) print('Shape:',a.shape)
انتاج:
Array Size: 7 Shape: (1, 7)
إعادة تشكيل كائنات المصفوفة
ونعني بشكل المصفوفة عدد الصفوف والأعمدة للمصفوفة متعددة الأبعاد. ومع ذلك، توفر لنا الوحدة numpy طريقة لإعادة تشكيل المصفوفة عن طريق تغيير عدد الصفوف والأعمدة للمصفوفة متعددة الأبعاد.
يتم استخدام الدالة reshape() المرتبطة بكائن ndarray لإعادة تشكيل المصفوفة. يقبل المعلمتين اللتين تشيران إلى الصف والأعمدة الخاصة بالشكل الجديد للمصفوفة.
دعونا نعيد تشكيل المصفوفة الواردة في الصورة التالية.
مثال
import numpy as np a = np.array([[1,2],[3,4],[5,6]]) print('printing the original array..') print(a) a=a.reshape(2,3) print('printing the reshaped array..') print(a)
انتاج:
printing the original array.. [[1 2] [3 4] [5 6]] printing the reshaped array.. [[1 2 3] [4 5 6]]
التقطيع في المصفوفة
يعد التقطيع في مصفوفة NumPy طريقة لاستخراج مجموعة من العناصر من مصفوفة. يتم إجراء التقطيع في المصفوفة بنفس الطريقة التي يتم بها في قائمة بايثون.
خذ بعين الاعتبار المثال التالي لطباعة عنصر معين من المصفوفة.
مثال
import numpy as np a = np.array([[1,2],[3,4],[5,6]]) print(a[0,1]) print(a[2,0])
انتاج:
8 إلى 1 معدد
2 5
يقوم البرنامج أعلاه بطباعة 2اختصار الثانيالعنصر من 0ذالفهرس و 0ذالعنصر من 2اختصار الثانيمؤشر المصفوفة.
لينسبايس
تقوم الدالة linspace() بإرجاع القيم المتباعدة بشكل متساوٍ خلال الفاصل الزمني المحدد. يقوم المثال التالي بإرجاع القيم العشرة المفصولة بالتساوي خلال الفاصل الزمني المحدد 5-15
مثال
import numpy as np a=np.linspace(5,15,10) #prints 10 values which are evenly spaced over the given interval 5-15 print(a)
انتاج:
[ 5. 6.11111111 7.22222222 8.33333333 9.44444444 10.55555556 11.66666667 12.77777778 13.88888889 15. ]
العثور على الحد الأقصى والحد الأدنى ومجموع عناصر المصفوفة
يوفر NumPy وظائف max() وmin() وsum() التي تُستخدم للعثور على الحد الأقصى والحد الأدنى ومجموع عناصر المصفوفة على التوالي.
النظر في المثال التالي.
مثال
import numpy as np a = np.array([1,2,3,10,15,4]) print('The array:',a) print('The maximum element:',a.max()) print('The minimum element:',a.min()) print('The sum of the elements:',a.sum())
انتاج:
سري رامانوجان
The array: [ 1 2 3 10 15 4] The maximum element: 15 The minimum element: 1 The sum of the elements: 35
محور صفيف NumPy
يتم تمثيل صفيف NumPy متعدد الأبعاد بالمحور حيث يمثل المحور 0 الأعمدة ويمثل المحور 1 الصفوف. يمكننا ذكر المحور لإجراء العمليات الحسابية على مستوى الصف أو على مستوى العمود مثل إضافة عناصر الصف أو العمود.
لحساب الحد الأقصى للعنصر بين كل عمود، والحد الأدنى للعنصر بين كل صف، وإضافة كافة عناصر الصف، خذ بعين الاعتبار المثال التالي.
مثال
import numpy as np a = np.array([[1,2,30],[10,15,4]]) print('The array:',a) print('The maximum elements of columns:',a.max(axis = 0)) print('The minimum element of rows',a.min(axis = 1)) print('The sum of all rows',a.sum(axis = 1))
انتاج:
The array: [[1 2 30] [10 15 4]] The maximum elements of columns: [10 15 30] The minimum element of rows [1 4] The sum of all rows [33 29]
إيجاد الجذر التربيعي والانحراف المعياري
يتم استخدام الدالتين sqrt() وstd() المرتبطتين بالمصفوفة numpy للعثور على الجذر التربيعي والانحراف المعياري لعناصر المصفوفة على التوالي.
الانحراف المعياري يعني مقدار اختلاف كل عنصر في المصفوفة عن القيمة المتوسطة للمصفوفة numpy.
النظر في المثال التالي.
مثال
import numpy as np a = np.array([[1,2,30],[10,15,4]]) print(np.sqrt(a)) print(np.std(a))
انتاج:
[[1. 1.41421356 5.47722558] [3.16227766 3.87298335 2. ]] 10.044346115546242
العمليات الحسابية على المصفوفة
تتيح لنا الوحدة numpy إجراء العمليات الحسابية على المصفوفات متعددة الأبعاد مباشرةً.
في المثال التالي، يتم تنفيذ العمليات الحسابية على المصفوفتين متعددتي الأبعاد a وb.
مثال
import numpy as np a = np.array([[1,2,30],[10,15,4]]) b = np.array([[1,2,3],[12, 19, 29]]) print('Sum of array a and b ',a+b) print('Product of array a and b ',a*b) print('Division of array a and b ',a/b)
تسلسل المصفوفة
يوفر لنا numpy التراص الرأسي والتراص الأفقي الذي يسمح لنا بربط صفيفين متعددي الأبعاد عموديًا أو أفقيًا.
النظر في المثال التالي.
مثال
import numpy as np a = np.array([[1,2,30],[10,15,4]]) b = np.array([[1,2,3],[12, 19, 29]]) print('Arrays vertically concatenated ',np.vstack((a,b))); print('Arrays horizontally concatenated ',np.hstack((a,b)))
انتاج:
Arrays vertically concatenated [[ 1 2 30] [10 15 4] [ 1 2 3] [12 19 29]] Arrays horizontally concatenated [[ 1 2 30 1 2 3] [10 15 4 12 19 29]]