NumPy Joining Array

الحاق آرایه‌های NumPy

منظور از الحاق (join) کنار هم قرار دادن عناصر ۲ یا چندین آرایه در یک آرایه است. در NumPy این کار بر اساس محورها (axes) انجام می‌شود.

یک دنباله از آرایه‌ها را همراه با محور مورد نظر به تابع concatenate() می‌دهیم. اگر محور را به طور صریح مشخص نکنیم مقدار پیش‌فرض آن که صفر است در نظر گرفته خواهد شد.


import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.concatenate((arr1, arr2))

print(arr)

خروجی:

در کد زیر یک آرایه دو بعدی را طول محور ۱ (سطرها) به هم ملحق کرده‌ایم.


import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.concatenate((arr1, arr2), axis=1)

print(arr)

خروجی:

الحاق آرایه‌ها با استفاده از توابع stack

stacking همان concatenation یا کنار هم قرار دادن است. تفاوت آن‌ها تنها مربوط به این است که stacking در طول یک محور جدید انجام می‌شود.

می‌توانیم ۲ آرایه یک بعدی را در طول محور دوم کنار هم قرار دهیم (concatenate) که نتیجه آن قرار گرفتن یکی روی دیگری خواهد بود، همان stacking.

دنباله‌ای از آرایه‌ها را که می‌خواهیم به هم ملحق کنیم همراه با محور مورد نظر به تابع stack() می‌دهیم. اگر محور را به صورت صریح مشخص نکنیم، مقدار پیش‌فرض آن یعنی صفر در نظر گرفته خواهد شد.


import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.stack((arr1, arr2), axis=1)

print(arr)

خروجی:

NumPy سه تابع کمکی vstack ،hstack و dstack را به ترتیب برای روی هم قرار دادن در طول سطرها، ستون‌ها و ارتفاع (یا همان عمق) معرفی کرده است که در زیر به ترتیب برای هر یک مثالی آورده شده است.


import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.hstack((arr1, arr2))

print(arr)

خروجی:


import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.vstack((arr1, arr2))

print(arr)

خروجی:


import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.dstack((arr1, arr2))

print(arr)

خروجی: