يوجد اكثر من طريقة لتقسيم مصفوفة في numpy:
1) اذا كانت المصفوفة احادية الابعاد 1-D:
لو عندنا مصفوفة احادية كالتالي:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
يمكن تقسيمها الي 5 مصفوفات متساوية باستخدام الكود:
import numpy as np
np.split(x, 5)
ويكون الناتج:
[array([0, 1]), array([2, 3]), array([4, 5]), array([6, 7]), array([8, 9])]
2) تقسيم مصفوفة في ثناية الابعاد 2-D:
في السؤال المطروح، اذا كان لدينا المصفوفة :
[[1,2,3,4], [5,6,7,8]]
يمكن تقسيمه عن طريق الكود التالي:
X = np.array([[1,2,3,4], [5,6,7,8]])
X_new = np.split(a,2,axis=1)
يمكن كذلك تقسيمها لعدد من المصفوفات غير متساوية الحجم اذا اردنا عن طريق استخدام ال indices:
np.split(X, [2,3,3])
هذا سوف يقسمهم الي 3 مصفوفات، اولهما تحتوي على عنصرين والثانيه والثالثة تحتوي كل منهما على ثلاث عناصر كالتالي:
[array([1, 2]), array([3, 4, 5]), array([6, 7, 8])]
هذا يوفر امكانية التقسيم حتى لقطع غير متساوية وبشكل عام يمكن استخدام np.split كالتالي:
numpy.split(arary, indices, axis=0)
>>>array: ادخال المصفوفة المارد تقسيمها
>>>indices: عدد المصفوفات المراد القسيم اليها، يمكن ايضا ادخال عدد من الارقام (كما في المثال السابق) لتقسيمها لقطع غير متساوية
>>>axis: المحور الذي يراد التقيم عليه، افتراضيا 0 وهو يمثل الصفوف او 1 وهو يمثل الاعمدة