في بايثون، مصطلح "Arrays" قد يشير إلى مفهومين مختلفين ولكنهما مرتبطين:
1. array
Module (وحدة المصفوفات):
هذه الوحدة توفر نوع بيانات array
الذي يخزن بيانات من نوع واحد بكفاءة. على عكس القوائم (lists
) التي يمكن أن تحتوي على عناصر من أنواع مختلفة، فإن المصفوفات في هذه الوحدة تخزن عناصر من نفس النوع فقط، مثل الأعداد الصحيحة أو الأعداد العشرية. هذا يجعلها أكثر كفاءة في استخدام الذاكرة وأسرع في بعض العمليات.
- الاستخدام: يتم تحديد نوع البيانات عند إنشاء المصفوفة باستخدام رمز نوع (
type code
)، مثل 'i' للأعداد الصحيحة الموقعة أو 'f' للأعداد العشرية. - المميزات: كفاءة في الذاكرة، سرعة في العمليات على البيانات المتجانسة.
- العيوب: محدودة لأنواع بيانات معينة، أقل مرونة من القوائم.
مثال:
Python
import array
# إنشاء مصفوفة تخزن أعداد صحيحةarr = array.array('i', [1, 2, 3, 4, 5])
# طباعة المصفوفةprint(arr) # Output: array('i', [1, 2, 3, 4, 5])
# الوصول إلى عنصر في المصفوفةprint(arr[0]) # Output: 1
2. NumPy Arrays (مصفوفات NumPy):
مكتبة NumPy هي مكتبة قوية جداً في بايثون تستخدم للعمليات العددية والعلمية. توفر NumPy نوع بيانات ndarray
(n-dimensional array) الذي يمثل مصفوفة متعددة الأبعاد. مصفوفات NumPy هي أساس العمليات العددية في بايثون وتوفر أداءً عالياً جداً.
- الاستخدام: يتم إنشاء مصفوفات NumPy باستخدام دالة
array()
من مكتبة NumPy. - المميزات: أداء عالي جداً في العمليات العددية، دعم المصفوفات متعددة الأبعاد، توفر العديد من الدوال الرياضية والعمليات على المصفوفات.
- العيوب: تتطلب تثبيت مكتبة NumPy.
مثال:
Python
import numpy as np
# إنشاء مصفوفة NumPyarr = np.array([1, 2, 3, 4, 5])
# طباعة المصفوفةprint(arr) # Output: [1 2 3 4 5]
# إجراء عمليات رياضية على المصفوفةprint(arr * 2) # Output: [ 2 4 6 8 10]
# إنشاء مصفوفة متعددة الأبعادmatrix = np.array([[1, 2], [3, 4]])print(matrix)# Output:# [[1 2]# [3 4]]
الخلاصة:
- إذا كنت تحتاج إلى تخزين بيانات من نوع واحد بكفاءة عالية ولا تحتاج إلى الكثير من المرونة، فاستخدم
array
module. - إذا كنت تحتاج إلى إجراء عمليات عددية وعلمية معقدة أو التعامل مع مصفوفات متعددة الأبعاد، فاستخدم NumPy arrays.