تقسیم آرایه‌های NumPy

تقسیم آرایه‌های NumPy

تقسیم عمل معکوس پیوستن است.

پیوستن (Joining) شامل ترکیب چندین آرایه به یک آرایه است، تقسیم (Spliting) شامل تقسیم یک آرایه به چندین آرایه است.

ما از 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() روش، ورودی‌ای که شامل آرایه‌ای است که می‌خواهید تقسیم کنید و تعداد تقسیمات مورد نظر را.

مثال

این 2-D را به سه 2-D تقسیم می‌کند.

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)

مثال اجرا

مثال بالا سه 2-D بازگردانده می‌کند.

بیایید مثال دیگری ببینیم، این بار هر عنصر 2-D شامل سه عنصر است.

مثال

این 2-D را به سه 2-D تقسیم می‌کند.

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)

مثال اجرا

مثال بالا سه 2-D بازگردانده می‌کند.

علاوه بر این، می‌توانید محور مورد تقسیم را مشخص کنید.

در مثال زیر نیز سه 2-D بازگردانده می‌شود، اما آنها به صورت افقی (axis=1) تقسیم شده‌اند.

مثال

این 2-D را به سه 2-D تقسیم می‌کند.

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)

مثال اجرا

یک راه حل دیگر این است که از hstack() عکس‌العمل hsplit().

مثال

با استفاده از روش hsplit()، یک ماتری 2-D را به سه ماتری 2-D تقسیم می‌کنیم.

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)

مثال اجرا

توجه:vsplit() و dsplit() می‌توانید از vstack() و dstack() روش‌های جایگزین مشابه.