اذهب إلى المحتوى
  • 0

أنواع المصفوفات في بايثون والفرق بينهم

Ali Ahmed39

السؤال

السلام عليكم

ما الفرق بين المصفوفات الأحادية و المصفوفات الثنائية و المصفوفات الثلاثية ؟

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

أولاً كل المصفوفات هي قائمة list ولكن يختلف العمق بناءًا على وجود مصفوفات أخرى داخل القائمة.

إذا كنت تقصد في لغة بايثون فالفرق كالتالي:

1- المصفوفات الأحادية (Unidimensional Arrays)

  • تعرف أيضًا باسم قوائم (Lists).
  • مكونة من مجموعة مرتبة من العناصر في صف واحد فقط.
  • يتم الوصول إلى العناصر بواسطة مؤشر يشير إلى الموضع الذي تمثله العناصر في القائمة.

مثال:

my_list = [1, 2, 3, 4, 5]
print(my_list[0])  # العنصر في الموضع الأول، الناتج: 1
print(my_list[2])  # العنصر في الموضع الثالث، الناتج: 3

 

مؤشر (index) يشير إلى الموضع الذي ترغب في الوصول إليه.

2- المصفوفات الثنائية (Bidimensional Arrays)

  • تُعرف باسم المصفوفات ذات البُعدين (2D Arrays) أو الجداول (Tables).
  • تتكون من صفوف وأعمدة، حيث تحتوي على مجموعة من العناصر المترابطة في صفوف وأعمدة.
  • نستطيع أن نصل العناصر باستخدام مؤشرين يُحددان الموقع الذي تتواجد فيه العناصر في الجدول.

مثال:

my_table = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(my_table[0][0])  # العنصر في الموضع (0, 0)، الناتج: 1
print(my_table[1][2])  # العنصر في الموضع (1, 2)، الناتج: 6

نستخدم اثنين من المؤشرات، الأول يحدد الموضع في الصفوف (رقم الـ array) والثاني يحدد الموضع في الأعمدة (مكانه في الـ array).

3- المصفوفات الثلاثية (Tridimensional Arrays)

  • يطلق عليها المصفوفات ذات الأبعاد الثلاث (3D Arrays).
  • تتكون من مجموعة من العناصر المترابطة في صفوف وأعمدة وعمق.
  • نصل إلى العناصر باستخدام ثلاثة مؤشرات تحدد الموقع الذي تتواجد فيه العناصر في المصفوفة الثلاثية.

مثال:

my_3d_array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
print(my_3d_array[0][0][0])  # العنصر في الموضع (0, 0, 0)، الناتج: 1
print(my_3d_array[1][0][1])  # العنصر في الموضع (1, 0, 1)، الناتج: 6

تستخدم ثلاثة مؤشرات، الأول يحدد الموضع في الصفوف، الثاني يحدد الموضع في الأعمدة، والثالث يحدد الموضع في العمق.

بمعنى:

my_3d_array[1] تشير  إلى العنصر في المؤشر 1 في المصفوفة الثلاثية. هنا، أي المصفوفة:

 [[5, 6], [7, 8]]

my_3d_array[1][0] تعني العنصر في المؤشر 0 في المصفوفة [[5, 6], [7, 8]] بمعنى المصفوفة:

[5, 6]

my_3d_array[1][0][1] وهنا نعني العنصر في المؤشر 1 في المصفوفة:

 [5, 6]

أي أنه يشير إلى العنصر 6.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هناك فروقات أخرى بين المصفوفات الأحادية والثنائية والثلاثية، بالإضافة إلى استخداماتهما المختلفة. وهذا يعتمد على طبيعة البيانات التي يتعامل معها المستخدم ونوع العمليات التي يريد تنفيذها.

المصفوفات الأحادية:
تستخدم المصفوفات الأحادية لتخزين بيانات على شكل قائمة واحدة، حيث يتم تخزين العناصر في صف واحد فقط. وتتميز هذه المصفوفات بأنها سهلة الاستخدام والفهرسة، كما تتطلب مساحة تخزين أقل بكثير مقارنة بالمصفوفات ذات الأبعاد الأعلى.ويمكن استخدام المصفوفات الأحادية في العديد من التطبيقات، مثل تخزين الأسماء والأرقام والنصوص والمفاتيح. وتستخدم أيضًا في العمليات الحسابية البسيطة مثل الجمع والطرح والضرب والقسمة.

students = ["Ahmed", "Sara", "Khalid", "Fatima", "Ali"]

المصفوفات الثنائية:
تستخدم المصفوفات الثنائية عادةً لتخزين بيانات على شكل جدول، حيث تحتوي على عدة صفوف وأعمدة. وتتميز هذه المصفوفات بأنها تسمح بتخزين العديد من العناصر بسهولة وفعالية، وتسمح بالوصول إلى العناصر بسهولة باستخدام الفهرسة.ويمكن استخدام المصفوفات الثنائية في العديد من التطبيقات، مثل تخزين البيانات الرقمية والجداول والصور والبيانات الإحصائية. وتستخدم في العمليات الإحصائية والحسابية الأكثر تعقيدًا، مثل المصفوفات المعكوسة وحساب المتوسط والانحراف المعياري.

لنفترض أن لدينا مصفوفة تحتوي على درجات طلاب مادة الرياضيات في الصف الأول، يمكن تخزين هذه الدرجات في مصفوفة ثنائية الأبعاد كالتالي:

math_grades = [[80, 85, 90], [75, 70, 85], [90, 95, 80], [85, 90, 75], [70, 80, 90]]

ويمكن الوصول إلى العناصر في المصفوفة باستخدام الفهرسة، مثل:

print(math_grades[0][1]) 
# output: 85 print(math_grades[3][2]) # output: 75

ويمكن استخدام المصفوفات الثنائية في العمليات الحسابية المعقدة، مثل حساب متوسط الدرجات، كالتالي:

for grades in math_grades:
    avg_grade = sum(grades) / len(grades)
    print(avg_grade)

المصفوفات الثلاثية:
تستخدم المصفوفات الثلاثية عادةً لتخزين بيانات ثلاثية الأبعاد، حيث تحتوي على صفوف وأعمدة وعمق. وتتميز هذه المصفوفات بأنها تسمح بتخزين البيانات بشكل ثلاثي الأبعاد، مثل الفيديو والبيانات الثلاثية الأبعاد والمجسمات الثلاثية الأبعاد.ويمكن استخدام المصفوفات الثلاثية في العديد من التطبيقات، مثل تحويل الصور الثنائية الأبعاد إلى صور ثلاثية الأبعاد وتحليل المجسمات الثلاثية الأبعاد. وتستخدم في العمليات الحسابية الثلاثية الأبعاد، مثل تحليل المجسمات الثلاثية الأبعاد وتحويل الصور الثنائية الأبعاد إلى صور ثلاثية الأبعاد.

colors = [[[255, 0, 0], [0, 255, 0], [0, 0, 255]],
          [[255, 255, 0], [255, 0, 255], [0, 255, 255]],
          [[128, 128, 128], [0, 0, 0], [255, 255, 255]]]
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 ساعة قال Mustafa Suleiman:

أولاً كل المصفوفات هي قائمة list ولكن يختلف العمق بناءًا على وجود مصفوفات أخرى داخل القائمة.

إذا كنت تقصد في لغة بايثون فالفرق كالتالي:

1- المصفوفات الأحادية (Unidimensional Arrays)

  • تعرف أيضًا باسم قوائم (Lists).
  • مكونة من مجموعة مرتبة من العناصر في صف واحد فقط.
  • يتم الوصول إلى العناصر بواسطة مؤشر يشير إلى الموضع الذي تمثله العناصر في القائمة.

مثال:

my_list = [1, 2, 3, 4, 5]
print(my_list[0])  # العنصر في الموضع الأول، الناتج: 1
print(my_list[2])  # العنصر في الموضع الثالث، الناتج: 3

 

مؤشر (index) يشير إلى الموضع الذي ترغب في الوصول إليه.

2- المصفوفات الثنائية (Bidimensional Arrays)

  • تُعرف باسم المصفوفات ذات البُعدين (2D Arrays) أو الجداول (Tables).
  • تتكون من صفوف وأعمدة، حيث تحتوي على مجموعة من العناصر المترابطة في صفوف وأعمدة.
  • نستطيع أن نصل العناصر باستخدام مؤشرين يُحددان الموقع الذي تتواجد فيه العناصر في الجدول.

مثال:

my_table = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(my_table[0][0])  # العنصر في الموضع (0, 0)، الناتج: 1
print(my_table[1][2])  # العنصر في الموضع (1, 2)، الناتج: 6

نستخدم اثنين من المؤشرات، الأول يحدد الموضع في الصفوف (رقم الـ array) والثاني يحدد الموضع في الأعمدة (مكانه في الـ array).

3- المصفوفات الثلاثية (Tridimensional Arrays)

  • يطلق عليها المصفوفات ذات الأبعاد الثلاث (3D Arrays).
  • تتكون من مجموعة من العناصر المترابطة في صفوف وأعمدة وعمق.
  • نصل إلى العناصر باستخدام ثلاثة مؤشرات تحدد الموقع الذي تتواجد فيه العناصر في المصفوفة الثلاثية.

مثال:

my_3d_array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
print(my_3d_array[0][0][0])  # العنصر في الموضع (0, 0, 0)، الناتج: 1
print(my_3d_array[1][0][1])  # العنصر في الموضع (1, 0, 1)، الناتج: 6

تستخدم ثلاثة مؤشرات، الأول يحدد الموضع في الصفوف، الثاني يحدد الموضع في الأعمدة، والثالث يحدد الموضع في العمق.

بمعنى:

my_3d_array[1] تشير  إلى العنصر في المؤشر 1 في المصفوفة الثلاثية. هنا، أي المصفوفة:

 [[5, 6], [7, 8]]

my_3d_array[1][0] تعني العنصر في المؤشر 0 في المصفوفة [[5, 6], [7, 8]] بمعنى المصفوفة:

[5, 6]

my_3d_array[1][0][1] وهنا نعني العنصر في المؤشر 1 في المصفوفة:

 [5, 6]

أي أنه يشير إلى العنصر 6.

تمام , شكرااا

ايوه كانت اقصد python

طيب فيه فرق بين القاموس ومصفوف الثنائية في لغة python ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

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

بالتالي لا فكرة من التفريق بين لائحة أحادية و لائحة ثنائية، ﻷن اللائحة الثنائية ما هي إلا لائحة أحادية عناصرها لوائح، و بالتالي أصبح لدينا العمق اثنان و لهذا دعوناها بالثنائية و لكنها في النهاية مجرد لائحة.

نفس الأمر ينطبق على اللوائح الثلاثية، يمكنك حتى الحصول على لوائح رباعية أو أكثر.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 ساعة قال Kais Hasan:

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

بالتالي لا فكرة من التفريق بين لائحة أحادية و لائحة ثنائية، ﻷن اللائحة الثنائية ما هي إلا لائحة أحادية عناصرها لوائح، و بالتالي أصبح لدينا العمق اثنان و لهذا دعوناها بالثنائية و لكنها في النهاية مجرد لائحة.

نفس الأمر ينطبق على اللوائح الثلاثية، يمكنك حتى الحصول على لوائح رباعية أو أكثر.

شكراااااا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...