يعد تقسيم المصفوفة إلى مصفوفات فرعية أحد أكثر المهام شيوعا عند العمل مع البيانات بلغة برمجة بايثون. في مثل هذه الحالات ، من المفيد جدا معرفة العديد من الأساليب والتقنيات التي ستساعدك على حل هذه المشكلة بشكل فعال. في هذه المقالة ، سنلقي نظرة على بعض النصائح المفيدة وأمثلة التعليمات البرمجية لتقسيم صفيف إلى مصفوفات فرعية.
واحدة من أسهل الطرق لتقسيم مصفوفة إلى مصفوفات فرعية هي استخدام الشرائح. باستخدام الشرائح ، يمكنك تحديد جزء معين من المصفوفة وإنشاء مصفوفة فرعية جديدة. على سبيل المثال ، إذا كان لديك مجموعة من الأرقام من 1 إلى 10 ، يمكنك استخدام التعليمات البرمجية التالية:
صفيف = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
المصفوفات الفرعية = [صفيف [أنا:أنا + 3] لأني في النطاق (0 ، لين (صفيف) ، 3)]
داخل مولد القائمة. سوف مولد قائمة تذهب من خلال جميع الفهارس من مجموعة في الخطوة 3 وإنشاء سوباراي جديدة من العناصر. نتيجة لذلك ، ستحصل على قائمة بالمصفوفات الفرعية التي يمكن استخدامها بشكل أكبر في البرنامج.
- كيفية تقسيم مصفوفة إلى مصفوفات بايثون الفرعية?
- 1. باستخدام شرائح
- 2. باستخدام نومبي.وظيفة تقسيم ()
- 3. باستخدام نومبي.انقسام () وظيفة
- خاتمة
- طريقة الانقسام () وطرق التقسيم البسيطة
- تقسيم صفيف بحجم معين
- 1. باستخدام مولد القائمة
- 2. باستخدام الدورة
- 3. باستخدام مكتبة نومبي
- باستخدام نومبي.وظيفة تقسيم ()
- أمثلة التعليمات البرمجية لتقسيم صفيف إلى مصفوفات فرعية
- سؤال وجواب
- كيفية تقسيم مصفوفة إلى مصفوفات فرعية?
- كيفية تقسيم مصفوفة إلى مصفوفات فرعية بطول معين?
- كيف يمكنني تقسيم مصفوفة إلى مصفوفات فرعية بحجم معين?
- كيف يمكنني تقسيم مصفوفة إلى مصفوفات فرعية متساوية الطول?
- هل من الممكن تقسيم المصفوفة إلى مجموعات فرعية بخطوة معينة?
- هل من الممكن تقسيم مصفوفة إلى مصفوفات فرعية ذات طول عشوائي?
كيف يمكنني تقسيم مجموعة إلى مصفوفات بيثون?
في بايثون ، من الملائم جدا تقسيم المصفوفات إلى مصفوفات فرعية باستخدام طرق مختلفة. يكون هذا مفيدا عندما تحتاج إلى العمل مع مجموعات بيانات كبيرة وتقسيمها إلى أجزاء أصغر للمعالجة أو التحليل. في هذا القسم ، سننظر في عدة طرق لتقسيم مصفوفة إلى مصفوفات فرعية في بايثون.
1. باستخدام شرائح
واحدة من أبسط الطرق وأكثرها فعالية لتقسيم المصفوفة إلى مصفوفات فرعية هي استخدام الشرائح. للقيام بذلك ، يمكنك استخدام مشغلي شريحة جنبا إلى جنب مع التكرارات والحلقات.
مثال:
آر = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] تشونك_حجم = 3
سوباراس = [أر [أنا:أنا + تشونك_سيزي] ل أنا في مجموعة (0 ، لين (أر) ، تشونك_سيزي)]
طباعة (مصفوفات فرعية)
سيؤدي هذا الرمز إلى تقسيم مصفوفة المصدر إلى مصفوفات فرعية مكونة من 3 عناصر. نتيجة لذلك ، سيتم الحصول على قائمة بالتجمعات الفرعية:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
2. باستخدام نومبي.وظيفة تقسيم ()
إذا كنت تعمل مع مكتبة نومبي ، يمكنك استخدام نومبي.وظيفة تقسيم الصف () لتقسيم المصفوفة إلى مصفوفات فرعية.
مثال:
استيراد نومبي كما نب
أر = نب.صفيف([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
المصفوفات الفرعية = نب.تقسيم الصفوف (آر آر ، 4)
طباعة (مصفوفات فرعية)
سيقسم هذا الرمز مصفوفة المصدر إلى 4 مصفوفات فرعية من نفس الحجم تقريبا ، إن أمكن. نتيجة لذلك ، سيتم الحصول على قائمة بالمصنفات الفرعية:
[صفيف([1, 2, 3]), صفيف([4, 5, 6]), صفيف ([7 ، 8]) ، صفيف ([9 ، 10])]
3. باستخدام نومبي.انقسام () وظيفة
هناك طريقة أخرى لتقسيم صفيف إلى مصفوفات فرعية في مكتبة نومبي وهي استخدام نومبي.انقسام () وظيفة.
مثال:
استيراد نومبي كما نب
أر = نب.صفيف([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
المصفوفات الفرعية = نب.سبليت (آر ، 5)
طباعة (مصفوفات فرعية)
سيقسم هذا الرمز صفيف المصدر إلى 5 مصفوفات فرعية بنفس الحجم تقريبا. نتيجة لذلك ، سيتم الحصول على قائمة المصفوفات الفرعية:
[صفيف ([1 ، 2]) ، صفيف ([3 ، 4]) ، صفيف ([5 ، 6]) ، صفيف ([7 ، 8]) ، صفيف ([9 ، 10])]خاتمة
يمكنك استخدام طرق مختلفة لتقسيم صفيف إلى مصفوفات فرعية في بيثون ، اعتمادا على احتياجاتك والمكتبات التي تستخدمها. تعد الشرائح طريقة بسيطة وفعالة للقيام بذلك ، خاصة إذا كنت تعمل فقط مع أنواع البيانات المضمنة. توفر المكتبات مثل نومبي أدوات أكثر قوة لتسهيل تقسيم المصفوفات إلى مصفوفات فرعية.
طريقة الانقسام () وطرق التقسيم البسيطة
طريقة الانقسام() هي واحدة من أبسط الطرق وأكثرها استخداما لتقسيم صفيف إلى مصفوفات فرعية في بايثون. يسمح لك بتقسيم سلسلة إلى سلاسل فرعية باستخدام فاصل محدد.
يبدو بناء جملة طريقة الانقسام () كما يلي:
سلسلة.سبليت (فاصل ، ماكسسبليت)
حيث الفاصل هو السلسلة المراد تقسيمها (افتراضيا هو الفضاء) ، و ماكسسبليت هو معلمة اختيارية تشير إلى الحد الأقصى لعدد الانقسامات التي يتعين القيام بها. إذا لم يتم تحديد وسيطة ، فستقوم الطريقة بتقسيم السلسلة إلى جميع السلاسل الفرعية الممكنة.
مثال على استخدام طريقة الانقسام():
# تقسيم سلسلة من الفضاء
سلسلة = "هذا مثال على تقسيم سلسلة"
النتيجة = سلسلة.انقسام()
طباعة (نتيجة)
# الإخراج:
['هذا هو' ، 'مثال' ، 'انشقاقات' ، 'سلاسل']
يمكن أيضا استخدام طريقة الانقسام () لتقسيم سلسلة إلى سلاسل فرعية بواسطة أحرف أخرى ، مثل فاصلة أو فاصلة منقوطة:
# تقسيم سلسلة بفاصلة
سلسلة = "التفاح والبرتقال والكمثرى"
النتيجة = سلسلة.انقسام ("،")
طباعة (نتيجة)
# الإخراج:
['التفاح' ، 'البرتقال' ، 'الكمثرى']
إذا كنت بحاجة إلى تقسيم سلسلة إلى عدد معين فقط من السلاسل الفرعية ، يمكنك استخدام الوسيطة الثانية — ماكسسبليت. على سبيل المثال ، لتقسيم سلسلة إلى سلسلتين فرعيتين فقط ، يمكنك استخدام التعليمات البرمجية التالية:
# تقسيم سلسلة إلى اثنين من سلاسل فرعية
سلسلة = "واحد اثنين ثلاثة أربعة خمسة"
النتيجة = سلسلة.انشق ، مزق ( "" , 2)
طباعة (نتيجة)
# الإخراج:
['واحد' ، 'اثنان' ، 'ثلاثة أربعة خمسة']
وتجدر الإشارة إلى أن طريقة الانقسام() ترجع قائمة بالسلاسل الفرعية ، لذلك يمكن استخدام نتائج تشغيلها بسهولة في عمليات معالجة البيانات الأخرى.
تقسيم صفيف بحجم معين
في لغة برمجة بايثون ، هناك عدة طرق لتقسيم مصفوفة إلى مصفوفات فرعية بحجم معين. يمكن أن يكون هذا مفيدا ، على سبيل المثال ، عند العمل بكميات كبيرة من البيانات أو عندما تحتاج البيانات إلى المعالجة في أجزاء. لنلق نظرة على بعض الأمثلة.
1. باستخدام مولد القائمة
Один из простых способов разбить массив на подмассивы заданного размера — использовать генератор списков. Ниже приведен пример кода:
def split_array(array, chunk_size):
return [array[i:i+chunk_size] for i in range(0, len(array), chunk_size)]
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3
result = split_array(array, chunk_size)
print(result)
принимает два аргумента: الصفيف وحجم المصفوفات الفرعية. تقوم الوظيفة بإنشاء مصفوفة جديدة باستخدام مولد قائمة. في هذا المولد ، نستخدم شرائح لتقسيم صفيف المصدر إلى مصفوفات فرعية بحجم معين.
2. باستخدام الدورة
هناك طريقة أخرى لتقسيم صفيف إلى مصفوفات فرعية وهي استخدام حلقة. В этом случае код будет выглядеть следующим образом:
def split_array(array, chunk_size):
result = []
for i in range(0, len(array), chunk_size):
result.append(array[i:i+chunk_size])
return result
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3
result = split_array(array, chunk_size)
print(result)
.
3. باستخدام مكتبة نومبي
из библиотеки numpy:
import numpy as np
def split_array(array, chunk_size):
return np.array(array).reshape(-1, chunk_size).tolist()
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3
result = split_array(array, chunk_size)
print(result)
.
هذه مجرد أمثلة قليلة لتقسيم مصفوفة إلى مصفوفات فرعية في لغة برمجة بايثون. اعتمادا على احتياجاتك والتعقيد المطلوب لعمليات الصفيف ، يمكنك اختيار الطريقة الأكثر ملاءمة لك.
باستخدام نومبي.وظيفة تقسيم ()
نومبي.تسمح لك وظيفة تقسيم الصف() من مكتبة نومبي بتقسيم صفيف إلى عدة مصفوفات فرعية. هذه ميزة مفيدة للغاية عند العمل بكميات كبيرة من البيانات.
بناء جملة الوظيفة:
نومبي.تقسيم صفائف (صفيف ، عدد المصفوفات الفرعية ، المحور = 0)
معلمات الوظيفة:
- صفيف-صفيف المصدر المراد تقسيمه;
- عدد المصفوفات الفرعية-عدد المصفوفات الفرعية لتقسيم مصفوفة المصدر إلى;
- المحور (اختياري) — المحور الذي سيتم على طوله التقسيم (0 — القسمة على الصفوف ، 1-القسمة على الأعمدة ، إلخ.). بشكل افتراضي ، المحور هو 0 ، أي أن القسمة تحدث في صفوف.
مثال الاستخدام:
استيراد نومبي كما نب
أر = نب.صفيف([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
المصفوفات الفرعية = نب.تقسيم الصفوف (آر آر ، 5)
طباعة (مصفوفات فرعية)
النتيجة:
[صفيف ([1 ، 2]) ، صفيف ([3 ، 4]) ، صفيف ([5 ، 6]) ، صفيف ([7 ، 8]) ، صفيف ([9 ، 10])]
في هذا المثال ، تم تقسيم المصفوفة الأصلية إلى خمسة مصفوفات فرعية من عنصرين لكل منهما.
وظيفة نومبي.يمكن أيضا استخدام تقسيم المصفوفة () لتقسيم مصفوفة إلى مصفوفات فرعية بأطوال مختلفة.
إذا لم يتم تقسيم مجموعة المصدر إلى مصفوفات فرعية متساوية ، ثم نومبي.ستحاول وظيفة تقسيم الصفوف () جعل جميع المصفوفات الفرعية قريبة من الطول قدر الإمكان. ومع ذلك ، في بعض الحالات ، قد يكون الصف الفرعي الأخير أكبر أو أصغر قليلا من الآخرين.
باستخدام نومبي.وظيفة أرايسبليت () يجعلها مريحة لتقسيم صفائف كبيرة إلى أصغر منها والعمل معهم مريح في المستقبل.
أمثلة التعليمات البرمجية لتقسيم صفيف إلى مصفوفات فرعية
يعد تقسيم مصفوفة أحادية البعد إلى مصفوفات فرعية مهمة شائعة في البرمجة. هناك عدة طرق لإنجاز هذه المهمة في بايثون. فيما يلي بعض أمثلة التعليمات البرمجية:
- صفيف = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- باستخدام نومبي:
- وظيفة الصفيف
المصفوفات الفرعية = قائمة (مقسمة (صفيف ، 3))
طباعة (مصفوفات فرعية)
# الإخراج: [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10,)]
في هذا المثال ، نقوم باستيراد دالة
تقسيم
من المكتبة
المزيد_الأدوات
. ثم نطبق هذه الوظيفة على المصفوفة الأصلية لتقسيمها إلى مصفوفات فرعية مكونة من 3 عناصر. وظيفة
تقسيم
إرجاع مكرر ، لذلك نستخدم