Python / القوائم والمصفوفات

المصفوفات: array و numpy

أنشئ مصفوفة أعداد صحيحة بمكتبة array واستخرج قيمها، وتعرّف على مصفوفات numpy التي تحسب على كل القيم مرة واحدة. منهج البكالوريا

القائمة تقبل أي خليط من القيم: [2, 2, 1, "Caution", 2]. لكن إذا كانت البيانات أرقامًا فقط، مثل مستويات التحذير، فالأفضل أن نمنع دخول أي نوع آخر بالخطأ. هذا ما تفعله المصفوفة: كل قيمها من نوع واحد.

Python
import array

warn_array = array.array('i', [2, 2, 1, 1, 2, 1, 2])
print(warn_array[0])
print(warn_array[5])
print(len(warn_array))
وحدة التحكم
2
1
7
الجزءمعناه
import arrayنستورد مكتبة المصفوفات
array.array(...)ننشئ مصفوفة
'i'نوع القيم: أعداد صحيحة (integer)
[2, 2, 1, ...]القيم نفسها

نستخدم المصفوفة مثل القائمة تمامًا: الترقيم يبدأ من 0، وlen() تعطي عدد القيم، وfor تمرّ على القيم:

Python
import array

day_array = array.array('i', [2, 3, 4, 5, 6, 7, 1])
print(day_array)
for day in day_array:
    print(day)
وحدة التحكم
array('i', [2, 3, 4, 5, 6, 7, 1])
2
3
4
5
6
7
1

إذا حاولنا وضع نص في مصفوفة 'i' يرفض Python ويظهر خطأ:

Python
import array

warn_array = array.array('i', [2, 1, "Caution"])
print(warn_array)
وحدة التحكم
TypeError: 'str' object cannot be interpreted as an integer
لا تنسَ import array في أول البرنامج، ولا تنسَ نوع القيم 'i' قبل القوسين المربعين. وللأعداد العشرية نستخدم النوع 'd'.

مصفوفات numpy

مكتبة numpy مصممة للحسابات على أرقام كثيرة. ميزتها أن العملية الحسابية على المصفوفة تُطبَّق على كل قيمة فيها مرة واحدة، بدون حلقة:

Python
import numpy

score_array = numpy.array([42, 58, 71])
bonus_array = score_array + 5
print(bonus_array)
print(score_array * 2)
وحدة التحكم
[47 63 76]
[ 84 116 142]
لاحظ أن numpy تطبع المصفوفة بمسافات بدل الفواصل: [47 63 76]. ومع القائمة العادية [42, 58, 71] + 5 يظهر خطأ؛ فإضافة رقم لكل القيم ميزة numpy.

تدريبات

1اكتب البرنامجتدريب المنهج

الأسبوع الذي يبدأ بالثلاثاء أرقامه 2، 3، 4، 5، 6، 7، 1. أسندها إلى المصفوفة day_array (أعداد صحيحة)، ثم اطبع العنصر رقم 0 ثم العنصر رقم 6.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
import array

وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
2اكتب البرنامجتدريب المنهج

اطبع طول المصفوفة warn_array.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
import array

warn_array = array.array('i', [2, 2, 1, 1, 2, 1, 2])
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
3عدّل البرنامجتدريب المنهج

في البرنامج خطآن: الاستيراد ناقص، وإنشاء المصفوفة ناقص. صحّحهما ليطبع 2 ثم 1.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
import 

day_array = ('i', [2, 3, 4, 5, 6, 7, 1])
print(day_array[0])
print(day_array[6])
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
4أكمل الفراغتدريب المنهج

أسند إلى round_array مصفوفة أعداد صحيحة بالقيم 1، 2، 3، 4، 5، فيُطبع العنصران رقم 1 ورقم 4.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
import array

round_array = ___
print(round_array[1])
print(round_array[4])
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
5اكتب البرنامجتدريب إضافي

عدد خطوات مشيتها في 5 أيام محفوظ في steps_array. اجمعها بحلقة for واطبع Total: 29700.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
import array

steps_array = array.array('i', [4200, 6500, 3900, 8000, 7100])
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
6اكتب البرنامجتدريب إضافي

أسعار ثلاث وجبات في الكافيتريا 120 و 80 و 45 جنيهًا، وكل سعر سيزيد 15 جنيهًا. أنشئ price_array بـ numpy، ثم أنشئ new_array بإضافة 15 للمصفوفة واطبعها.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
import numpy

وحدة التحكم
اضغط «تشغيل» لترى النتيجة.

النقاط الرئيسية

  • import array ثم array.array('i', [...]) مصفوفة أعداد صحيحة فقط.
  • نستخرج القيم بالترقيم من 0، ونعرف عددها بـ len() كما في القوائم.
  • في numpy.array العملية الحسابية تُطبَّق على كل القيم مرة واحدة.