Python المصفوفة: أمثلة على مصفوفات التبديل والضرب والمصفوفات NumPy
ما هي تفاصيل Python مصفوفة؟
A Python المصفوفة عبارة عن مجموعة مستطيلة ثنائية الأبعاد متخصصة من البيانات المخزنة في صفوف وأعمدة. يمكن أن تكون البيانات الموجودة في المصفوفة أرقامًا أو سلاسل أو تعبيرات أو رموزًا وما إلى ذلك. المصفوفة هي إحدى هياكل البيانات المهمة التي يمكن استخدامها في الحسابات الرياضية والعلمية.
كيف Python عمل المصفوفات؟
تبدو البيانات الموجودة داخل المصفوفة ثنائية الأبعاد بتنسيق المصفوفة كما يلي:
الخطوة 1) إنها تظهر مصفوفة 2×2. تحتوي على صفين وعمودين. البيانات الموجودة داخل المصفوفة عبارة عن أرقام. يحتوي الصف 2 على القيم 1 و2,3، ويحتوي الصف 2 على القيم 4,5 و1. تحتوي الأعمدة، أي العمود 2,4، على القيم 2 و3,5، ويحتوي العمود XNUMX على القيم XNUMX وXNUMX.
الخطوة 2) يظهر مصفوفة 2 × 3. يتكون من صفين وثلاثة أعمدة. البيانات الموجودة داخل الصف الأول، أي الصف 1، لها قيم 2,3,4، والصف 2 لها قيم 5,6,7. تحتوي الأعمدة col1 على قيم 2,5، وcol2 لها قيم 3,6، وcol3 لها قيم 4,7.
وبالمثل، يمكنك تخزين بياناتك داخل مصفوفة nxn Pythonيمكن إجراء العديد من العمليات على المصفوفات مثل الجمع والطرح والضرب وما إلى ذلك.
Python ليس لديه طريقة مباشرة لتنفيذ نوع بيانات المصفوفة.
تستخدم مصفوفة بايثون المصفوفات، ويمكن تنفيذ الشيء نفسه.
- إنشاء Python مصفوفة تستخدم نوع بيانات القائمة المتداخلة
- إنشاء Python مصفوفة باستخدام المصفوفات من Python حزمة نومي
إنشاء Python مصفوفة تستخدم نوع بيانات القائمة المتداخلة
In Pythonيتم تمثيل المصفوفات باستخدام نوع البيانات القائمة. لذا سنستخدم القائمة الآن لإنشاء مصفوفة بايثون.
سنقوم بإنشاء مصفوفة 3×3 كما هو موضح أدناه:
- تحتوي المصفوفة على 3 صفوف وعمودين.
- سيكون الصف الأول بتنسيق القائمة كما يلي: [8,14,-6]
- الصف الثاني في القائمة سيكون: [12,7,4،XNUMX،XNUMX]
- الصف الثالث في القائمة سيكون: [-11,3,21]
المصفوفة الموجودة داخل القائمة التي تحتوي على كافة الصفوف والأعمدة هي كما هو موضح أدناه:
List = [[Row1], [Row2], [Row3] ... [RowN]]
لذا، وفقًا للمصفوفة المذكورة أعلاه، يكون نوع القائمة مع بيانات المصفوفة كما يلي:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
لقراءة البيانات في الداخل Python مصفوفة باستخدام القائمة.
سوف نستخدم المصفوفة المحددة أعلاه. سيقوم المثال بقراءة البيانات وطباعة المصفوفة وعرض العنصر الأخير من كل صف.
مثال: لطباعة المصفوفة
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
الإخراج:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
مثال 2: قراءة العنصر الأخير من كل صف
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To read the last element from each row. for i in range(matrix_length): print(M1[i][-1])
الإخراج:
-6 4 21
مثال 3: لطباعة الصفوف في المصفوفة
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To print the rows in the Matrix for i in range(matrix_length): print(M1[i])
الإخراج:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
إضافة المصفوفات باستخدام القائمة المتداخلة
يمكننا بسهولة إضافة مصفوفتين معلومتين. المصفوفات هنا ستكون على شكل قائمة. دعونا نعمل على مثال سيهتم بإضافة المصفوفات المعطاة.
مصفوفة 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
مصفوفة 2 :
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
سيقوم الأخير بتهيئة المصفوفة التي ستقوم بتخزين نتيجة M1 + M2.
مصفوفة 3 :
M3 = [[0,0,0], [0,0,0], [0,0,0]]
مثال: إضافة المصفوفات
للإضافة، ستستفيد المصفوفات من حلقة for التي ستدور خلال المصفوفتين المعطاتين.
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Add M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] + M2[i][k] #To Print the matrix print("The sum of Matrix M1 and M2 = ", M3)
الإخراج:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
ضرب المصفوفات باستخدام القائمة المتداخلة
لضرب المصفوفات، يمكننا استخدام حلقة for على كلا المصفوفتين كما هو موضح في الكود أدناه:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Multiply M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] * M2[i][k] #To Print the matrix print("The multiplication of Matrix M1 and M2 = ", M3)
الإخراج:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
إنشاء Python مصفوفة باستخدام المصفوفات من Python حزمة نومي
مكتبة بايثون Numpy تساعد في التعامل مع المصفوفات. يقوم Numpy بمعالجة المصفوفة بشكل أسرع قليلاً مقارنة بالقائمة.
للعمل مع Numpy، عليك تثبيته أولاً. اتبع الخطوات الموضحة أدناه لتثبيت Numpy.
الخطوة 1) أمر تثبيت Numpy هو:
pip install NumPy
الخطوة 2) للاستفادة من Numpy في التعليمات البرمجية الخاصة بك، يجب عليك استيراده.
import NumPy
الخطوة 3) يمكنك أيضًا استيراد Numpy باستخدام اسم مستعار، كما هو موضح أدناه:
import NumPy as np
سنستخدم طريقة array() من Numpy لإنشاء مصفوفة بايثون.
مثال: إنشاء مصفوفة في Numpy Python مصفوفة
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
الإخراج:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
مصفوفة Operaنشوئها باستخدام Numpy.Array()
عملية المصفوفة التي يمكن القيام بها هي الجمع والطرح والضرب والنقل وقراءة الصفوف والأعمدة في المصفوفة وتقطيع المصفوفة وما إلى ذلك. في جميع الأمثلة، سنستخدم طريقة array().
إضافة المصفوفة
لإجراء عملية جمع على المصفوفة، سنقوم بإنشاء مصفوفتين باستخدام numpy.array() وإضافتهما باستخدام عامل (+).
على سبيل المثال:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 + M2 print(M3)
الإخراج:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
طرح المصفوفة
لإجراء عملية الطرح على المصفوفة، سنقوم بإنشاء مصفوفتين باستخدام numpy.array() وطرحهما باستخدام عامل (-).
على سبيل المثال:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 - M2 print(M3)
الإخراج:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
ضرب المصفوفة
أولاً سيتم إنشاء مصفوفتين باستخدام numpy.arary(). لضربهم، يمكنك الاستفادة من طريقة numpy dot(). Numpy.dot() هو المنتج النقطي للمصفوفة M1 وM2. يعالج Numpy.dot() المصفوفات ثنائية الأبعاد ويقوم بعمليات ضرب المصفوفات.
على سبيل المثال:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
الإخراج:
[[ 93 78] [ -65 -310]]
تبديل المصفوفة
يتم حساب تبديل المصفوفة عن طريق تغيير الصفوف إلى أعمدة والأعمدة إلى صفوف. يمكن استخدام وظيفة النقل () من Numpy لحساب تبديل موضع المصفوفة.
على سبيل المثال:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
الإخراج:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
تقطيع المصفوفة
سيعيد لك التقطيع العناصر من المصفوفة بناءً على فهرس البداية/النهاية المحدد.
- بناء جملة التقطيع هو – [البدء: النهاية]
- إذا لم يتم إعطاء فهرس البداية، فسيتم اعتباره 0. على سبيل المثال [:5]، يعني [0:5].
- إذا لم يتم تمرير النهاية، فسوف يستغرق الأمر طول المصفوفة.
- إذا كانت البداية/النهاية لها قيم سالبة، فسيتم إجراء التقطيع من نهاية المصفوفة.
قبل أن نعمل على تقسيم المصفوفة، دعونا نفهم أولاً كيفية تطبيق الشريحة على مصفوفة بسيطة.
import numpy as np arr = np.array([2,4,6,8,10,12,14,16]) print(arr[3:6]) # will print the elements from 3 to 5 print(arr[:5]) # will print the elements from 0 to 4 print(arr[2:]) # will print the elements from 2 to length of the array. print(arr[-5:-1]) # will print from the end i.e. -5 to -2 print(arr[:-1]) # will print from end i.e. 0 to -2
الإخراج:
[ 8 10 12] [ 2 4 6 8 10] [ 6 8 10 12 14 16] [ 8 10 12 14] [ 2 4 6 8 10 12 14]
الآن دعونا ننفذ التقطيع على المصفوفة. لإجراء التقطيع على المصفوفة
سيكون بناء الجملة M1[row_start:row_end, col_start:col_end]
- ستكون البداية/النهاية الأولى للصف، أي لتحديد صفوف المصفوفة.
- البداية/النهاية الثانية ستكون للعمود، أي لتحديد أعمدة المصفوفة.
المصفوفة M1 t التي سنستخدمها هي كما يلي:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
هناك إجمالي 4 صفوف. يبدأ الفهرس من 0 إلى 3. 0th الصف هو [2,4,6,8,10،1،XNUMX،XNUMX،XNUMX]، XNUMXst الصف هو [3,6,9،12،15،-2،-XNUMX] متبوعًا بـ XNUMXnd و 3rd.
تحتوي المصفوفة M1 على 5 أعمدة. يبدأ المؤشر من 0 إلى 4.ال0th يحتوي العمود على قيم [2,3,4,5،1،XNUMX،XNUMX]، XNUMXst تحتوي الأعمدة على قيم [4,6,8،10،2،-XNUMX] متبوعة بالرقم XNUMXnd، 3rd، 4th، و شنومكسth.
فيما يلي مثال يوضح كيفية الحصول على بيانات الصفوف والأعمدة من المصفوفة باستخدام التقطيع. في المثال، نقوم بطباعة 1st و 2nd الصف، وبالنسبة للأعمدة، نريد العمود الأول والثاني والثالث. للحصول على هذا الناتج استخدمنا: M1[1:3, 1:4]
على سبيل المثال:
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[1:3, 1:4]) # For 1:3, it will give first and second row. #The columns will be taken from first to third.
الإخراج:
[[ 6 9 -12] [ 8 12 16]]
مثال: لطباعة كافة الصفوف والأعمدة الثالثة
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,3]) # This will print all rows and the third column data.
الإخراج:
[ 8 -12 16 -20]
مثال: لطباعة الصف الأول وجميع الأعمدة
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:1,]) # This will print first row and all columns
الإخراج:
[[ 2 4 6 8 10]]
مثال: لطباعة الصفوف الثلاثة الأولى وأول عمودين
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:3,:2])
الإخراج:
[[2 4] [3 6] [4 8]]
الوصول إلى مصفوفة NumPy
لقد رأينا كيف يعمل التقطيع. وبأخذ ذلك في الاعتبار، سنتعرف على كيفية الحصول على الصفوف والأعمدة من المصفوفة.
لطباعة صفوف المصفوفة
في المثال سيتم طباعة صفوف المصفوفة.
على سبيل المثال:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) print(M1[0]) #first row print(M1[1]) # the second row print(M1[-1]) # -1 will print the last row
الإخراج:
[3 6 9] [ 5 -10 15] [ 4 8 12]
للحصول على الصف الأخير، يمكنك الاستفادة من الفهرس أو -1. على سبيل المثال، تحتوي المصفوفة على 3 صفوف،
لذا فإن M1[0] سيعطيك الصف الأول،
M1[1] سيعطيك الصف الثاني
سيعطيك M1[2] أو M1[-1] الصف الثالث أو الصف الأخير.
لطباعة أعمدة المصفوفة
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,0]) # Will print the first Column print(M1[:,3]) # Will print the third Column print(M1[:,-1]) # -1 will give you the last column
الإخراج:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
الملخص
- A Python المصفوفة عبارة عن مجموعة مستطيلة ثنائية الأبعاد متخصصة من البيانات المخزنة في صفوف وأعمدة. يمكن أن تكون البيانات الموجودة في المصفوفة أرقامًا أو سلاسل أو تعبيرات أو رموزًا وما إلى ذلك. المصفوفة هي إحدى هياكل البيانات المهمة التي يمكن استخدامها في الحسابات الرياضية والعلمية.
- Python ليس لديه طريقة مباشرة لتنفيذ نوع بيانات المصفوفة. Python يمكن إنشاء المصفوفة باستخدام نوع بيانات القائمة المتداخلة وباستخدام مكتبة numpy.
- مكتبة بايثون Numpy تساعد في التعامل مع المصفوفات. يقوم Numpy بمعالجة المصفوفة بشكل أسرع قليلاً مقارنة بالقائمة.
- العمليات التي يمكن إجراؤها على المصفوفة هي الجمع والطرح والضرب والنقل وقراءة الصفوف والأعمدة في المصفوفة وتقطيع المصفوفة وما إلى ذلك.
- لإضافة مصفوفتين، يمكنك استخدام numpy.array() وإضافتهما باستخدام عامل (+).
- لضربهم، يمكنك الاستفادة من طريقة numpy dot(). Numpy.dot() هو المنتج النقطي للمصفوفة M1 وM2. يعالج Numpy.dot() المصفوفات ثنائية الأبعاد ويقوم بعمليات ضرب المصفوفات.
- يتم حساب تبديل المصفوفة عن طريق تغيير الصفوف إلى أعمدة والأعمدة إلى صفوف. يمكن استخدام وظيفة النقل () من Numpy لحساب تبديل موضع المصفوفة.
- سيؤدي تقطيع المصفوفة إلى إرجاع العناصر بناءً على فهرس البداية/النهاية المحدد.