Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

NumPy Concatenate: Hướng dẫn nối mảng

Cách nối mảng NumPy

NumPy là thư viện tuyệt vời làm việc với mảng trong Python. Nó bao phủ mọi thứ từ tạo đến thao tác mảng mọi kích thước. Không ngạc nhiên NumPy đi kèm tiện ích nối mảng.

Phương thức numpy.concatenate() nối hai hoặc nhiều mảng thành một mảng đơn.

Trong hướng dẫn này, chúng ta sẽ nói về mảng NumPy là gì và cách nối chúng. Chúng ta sẽ đi qua vài ví dụ giúp bạn bắt đầu. Hãy bắt đầu!

Cấu trúc mảng

Mảng NumPy là loại mảng làm việc với thư viện NumPy. Nó trông như mảng khác nhưng lưu trong đối tượng ndarray:

array([1, 2, 3])

Để làm việc mảng NumPy, cần import thư viện numpy:

import numpy as np

Chúng ta sẽ nối hai mảng. Mảng đầu chứa tất cả số từ 1 đến 9 (bao gồm). Mảng hai chứa tất cả số từ 10 đến 18 (bao gồm).

Hãy tạo mảng này dùng phương thức arange():

first_array = np.arange(1, 10).reshape(3, 3) second_array = np.arange(10, 19).reshape(3, 3) print(first_array) print(second_array)

Mã này tạo hai mảng. Mỗi mảng là mảng 2d. Chúng ta làm mảng 2d bằng phương thức reshape() tạo lưới 3×3 cho mỗi mảng:

81% người tham gia cho biết họ cảm thấy tự tin hơn về cơ hội việc làm công nghệ sau khi tham gia bootcamp. Được ghép nối với bootcamp ngay hôm nay.

Sinh viên trung bình tốt nghiệp bootcamp mất chưa đến sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được việc đầu tiên.

[[1 2 3] [4 5 6] [7 8 9]] [[10 11 12] [13 14 15] [16 17 18]]

Chúng ta giờ có hai mảng để làm việc! Hãy nối chúng dùng concatenate().

Nối mảng NumPy

Bạn có thể nối mảng trên hai trục: theo hàng (row) hoặc theo cột (column). Thực hiện bằng phương thức concatenate(). Phương thức nối có thể gộp mảng 1d, 2d, 3d, 4d, và mảng chiều cao hơn.

Nối theo hàng (Row)

Chúng ta bắt đầu nối hai mảng theo hàng. Điều này căn chỉnh mục trong hai mảng theo hàng và gộp thành một mảng:

final_array = np.concatenate((first_array, second_array)) print(final_array)

Chúng ta chỉ định tuple bên trong hàm concatenate(). Tuple này chứa danh sách mảng muốn nối. Không tham số, concatenate() nối theo hàng.

Mã trả về:

[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12] [13 14 15] [16 17 18]]

Mảng được nối theo hàng.

Nối theo cột (Column)

Bạn có thể dùng phương thức concatenate gộp hai mảng theo cột.

Để làm vậy, cần tham số mới: axis. Mặc định giá trị 0. Tương ứng trục x, hoặc trục hàng. Chúng ta ghi đè giá trị đặt thành 1. Sẽ gộp hai mảng theo cột.

Hãy nối hai mảng theo cột:

final_array = np.concatenate((first_array, second_array), axis=1) print(final_array)

Mã gần như giống ví dụ trước. Khác biệt là chỉ định tham số axis=1. Hãy xem chạy mã:

[[ 1 2 3 10 11 12] [ 4 5 6 13 14 15] [ 7 8 9 16 17 18]]

Mảng được gộp theo cột. 

Nối nhiều hơn hai mảng

Phương thức concatenate() có thể nối bất kỳ số lượng mảng nào. Hãy thử nối ba mảng trên trục ngang. Mảng làm việc chứa tất cả số trong phạm vi:

  • 1 đến 9 (bao gồm).
  • 10 đến 18 (bao gồm).
  • 19 đến 27 (bao gồm).

Hãy định nghĩa mảng trong Python:

first_array = np.arange(1, 10).reshape(3, 3) second_array = np.arange(10, 19).reshape(3, 3) third_array = np.arange(19, 28).reshape(3, 3)

Tiếp theo, dùng concatenate gộp chúng:

final_array = np.concatenate((first_array, second_array, third_array), axis=1) print(final_array)

Chúng ta chỉ định ba mảng như tuple trong phương thức concatenate(). Khi kết hợp, mảng này tương ứng tất cả số từ 1 đến 27. 

Hãy chạy chương trình:

[[ 1 2 3 10 11 12 19 20 21] [ 4 5 6 13 14 15 22 23 24] [ 7 8 9 16 17 18 25 26 27]]

Ba mảng giờ gán cho biến "final_array". Chúng ta in biến ra console chứng minh mảng đã gộp thành công.

Kết luận

Phương thức NumPy concatenate() nối hai hoặc nhiều mảng NumPy. Mảng nối theo trục dọc mặc định. Bạn có thể nối theo trục ngang dùng cờ axis=1.

Bạn có thể nối hai hoặc nhiều mảng 1d dùng vstack và hstack. concatenate() hiệu quả hơn các phương pháp này. concatenate() cũng hỗ trợ nối mảng 2d, 3d, và mảng chiều cao hơn.

Bây giờ bạn đã sẵn sàng nối mảng NumPy như chuyên gia Python!