1. Nối hai mảng bằng np.concatenate()

Nối hai mảng hay Join Array trong Nump nghĩa là việc thực hiện đưa các phần tử có trong hai mảng về 1 mảng duy nhất. Trong NumPy, để nối được hai mảng với nhau chúng ta sẽ cần nối các mảng theo trục.

Để thực hiện nối, 2 mảng Numpy cung cấp sẵn cho chúng ta hàm np.concatenate() hàm này thực hiện nối 2 mảng với nhau dựa theo trục được chỉ đỉnh. Nếu trục không được truyền vào hàm, nó được hàm sẽ thực hiện nối theo trục ngang.

Ví dụ dưới đây, nối 2 mảng theo trục ngang bằng hàm np.concatenate() như sau:

import numpy as np

# Mang a
a = np.array([1, 2, 3])

# Mang b
b = np.array([4, 5, 6])

# Noi hai mang theo truc doc
c = np.concatenate((a, b))

# Hien thi mang sau khi noi
print(c)

Kết quả:

[1 2 3 4 5 6]

Nếu như cần nối theo trục dọc, khi đó ta cần truyền tham số axis=0 vào hàm np.concatenate() như sau:

import numpy as np

# Mang a
a = np.array([[1, 2], [3, 4]])

# Mang b
b = np.array([[5, 6], [7, 8]])

# Noi hai mang theo truc doc
c = np.concatenate((a, b), axis=0)
print(c)

Kết quả:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

2. Nối hai mảng bằng np.stack()

Ngăn xếp (stack) cũng thực hiện tương tự như việc chúng ta nối tiếp các mảng với nhau, khác biệt duy nhất khi sử dụng ngăn xếp để nối 2 mảng đó là việc xếp chồng được thực hiện dọc theo một trục mới.

Hàm np.stack() sẽ giúp ta nối 2 mảng thực hiện việc nối tương tự như trong ngăn xếp, chúng ta có thể nối hai mảng 1 chiều dọc theo trục thứ hai, điều này sẽ dẫn đến việc đặt chúng chồng lên nhau, tức là xếp chồng các mảng này lên với nhau.

Ví dụ dưới đây, sử dụng hàm np.stack() để nối hai mảng 1 chiều chồng lên nhau như sau:

import numpy as np

# Mang a
a = np.array([1, 2, 3])

#Mang b
b = np.array([4, 5, 6])

# Noi hai mang chong len nhau theo truc doc
c = np.stack((a, b), axis=0)
print(c)

Kết quả:

[[1 2 3]
 [4 5 6]]

Nếu như bạn cần nối hai mảng chồng lên nhau theo trục ngang, khi đó chúng ta sẽ cần sử dụng hàm np.stack()  và truyền vào tham số axis = 1 như sau:

import numpy as np

# Mang a
a = np.array([1, 2, 3])

#Mang b
b = np.array([4, 5, 6])

# Noi hai mang chong len nhau theo truc ngang
c = np.stack((a, b), axis=1)
print(c)

Kết quả:

[[1 4]
 [2 5]
 [3 6]]

3. Nối hai mảng bằng np.vstack() và np.hstack()

Hàm np.vstack() được sử dụng để nối hai mảng 1 chiều với nhau theo chiều dọc của trục, trong khi đó hàm np.hstack() lại được sử dụng để nối hai mảng 1 chiều với nhau dọc theo chiều ngang của trục. Hai hàm này đều thực hiện việc nối 2 mảng trong ngăn xếp.

Ví dụ sử dụng hàm np.vstack() để nối hai mảng 1 chiều theo trục dọc như sau:

import numpy as np

# Mang a
a = np.array([1, 2, 3])

# Mang b
b = np.array([4, 5, 6])

# Noi 2 mang theo truc ngang
c = np.vstack((a, b))
print(c)

Kết quả:

[[1 2 3]
 [4 5 6]]

Ví dụ tiếp theo, sử dụng hàm np.hstack() để nối hai mảng 1 chiều theo trục ngang của mảng như sau:

import numpy as np

# Mang a
a = np.array([1, 2, 3])

# Mang b
b = np.array([4, 5, 6])

# Noi hai mang theo truc ngang
c = np.hstack((a, b))
print(c)

Kết quả:

[1 2 3 4 5 6]