صفيف تقسيم 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()