صفيف تقسيم NumPy


تقسيم مصفوفات NumPy

التقسيم هو عملية عكسية للانضمام.

يدمج الانضمام إلى مصفوفات متعددة في صفيف واحد ويقسم تقسيم مجموعة واحدة إلى عدة مصفوفات.

نستخدمها array_split()لتقسيم المصفوفات ، ونمررها المصفوفة التي نريد تقسيمها وعدد الانقسامات.

مثال

قسّم المصفوفة إلى 3 أجزاء:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr)

ملاحظة: القيمة المعادة هي مصفوفة تحتوي على ثلاث مصفوفات.

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

مثال

قسّم المصفوفة إلى 4 أجزاء:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 4)

print(newarr)

ملاحظة: لدينا أيضًا الطريقة split()المتاحة ولكنها لن تضبط العناصر عندما تكون العناصر أقل في مصفوفة المصدر للتقسيم كما في المثال أعلاه ، array_split()وتعمل بشكل صحيح ولكنها split()ستفشل.



انقسام في صفائف

القيمة المرجعة array_split()للطريقة هي مصفوفة تحتوي على كل من الانقسام كمصفوفة.

إذا قسمت مصفوفة إلى 3 مصفوفات ، يمكنك الوصول إليها من النتيجة تمامًا مثل أي عنصر من عناصر المصفوفة:

مثال

الوصول إلى المصفوفات المقسمة:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr[0])
print(newarr[1])
print(newarr[2])

تقسيم المصفوفات ثنائية الأبعاد

استخدم نفس الصيغة عند تقسيم المصفوفات ثنائية الأبعاد.

استخدم array_split()الطريقة ، مرر المصفوفة التي تريد تقسيمها وعدد الانقسامات التي تريد القيام بها.

مثال

قسّم المصفوفة ثنائية الأبعاد إلى ثلاث مصفوفات ثنائية الأبعاد.

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])

newarr = np.array_split(arr, 3)

print(newarr)

يقوم المثال أعلاه بإرجاع ثلاث صفائف ثنائية الأبعاد.

لنلق نظرة على مثال آخر ، هذه المرة يحتوي كل عنصر في المصفوفات ثنائية الأبعاد على 3 عناصر.

مثال

قسّم المصفوفة ثنائية الأبعاد إلى ثلاث مصفوفات ثنائية الأبعاد.

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.array_split(arr, 3)

print(newarr)

يقوم المثال أعلاه بإرجاع ثلاث صفائف ثنائية الأبعاد.

بالإضافة إلى ذلك ، يمكنك تحديد المحور الذي تريد تقسيمه حوله.

يُرجع المثال أدناه أيضًا ثلاث صفائف ثنائية الأبعاد ، لكنها مقسمة على طول الصف (المحور = 1).

مثال

قسّم الصفيف ثنائي الأبعاد إلى ثلاث صفائف ثنائية الأبعاد على طول الصفوف.

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.array_split(arr, 3, axis=1)

print(newarr)

حل بديل يستخدم hsplit()عكس hstack()

مثال

استخدم هذه hsplit()الطريقة لتقسيم المصفوفة ثنائية الأبعاد إلى ثلاث مصفوفات ثنائية الأبعاد على طول الصفوف.

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.hsplit(arr, 3)

print(newarr)

ملاحظة: تتوفر بدائل مماثلة لـ vstack()و . dstack()vsplit()dsplit()