Computer >> Máy Tính >  >> Lập trình >> Python

NumPy Concatenate:Hướng dẫn

Cách nối các mảng NumPy

NumPy là một thư viện tuyệt vời để làm việc với các mảng trong Python. Nó bao gồm tất cả mọi thứ từ tạo đến thao tác các mảng ở mọi kích cỡ. Không có gì ngạc nhiên khi NumPy đi kèm với một tiện ích mà bạn có thể sử dụng để nối các mảng.

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

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

Cấu trúc của một mảng

Mảng NumPy là một kiểu mảng hoạt động với thư viện NumPy. Nó trông giống như bất kỳ mảng nào khác nhưng nó được lưu trữ bên trong một đối tượng ndarray:

array([1, 2, 3])

Để làm việc với mảng NumPy, chúng ta cần nhập thư viện numpy:

import numpy as np

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

Hãy tạo các mảng này bằng arange() phương pháp:

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 ra hai mảng. Mỗi mảng là một mảng 2d. Chúng tôi đã tạo các mảng này ở dạng 2d bằng cách sử dụng reshape() phương thức 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ề triển vọng công việc công nghệ của mình sau khi tham gia chương trình đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

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

Bây giờ chúng ta có hai mảng mà chúng ta có thể làm việc với nó! Hãy nối chúng bằng cách sử dụng concatenate() .

Kết hợp NumPy

Bạn có thể nối một mảng theo hai trục:theo hàng hoặc theo cột. Điều này được thực hiện bằng cách sử dụng concatenate() phương pháp. Phương thức nối có thể hợp nhất 1d, 2d, 3d, 4d và các mảng có số lượng kích thước cao hơn.

Nối theo hàng

Chúng ta sẽ bắt đầu bằng cách nối hai mảng của chúng ta theo hàng. Thao tác này sẽ căn chỉnh các mục trong hai mảng của chúng ta theo hàng và hợp nhất chúng thành một mảng:

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

Chúng tôi đã chỉ định một bộ giá trị bên trong concatenate() chức năng. Bộ này chứa danh sách các mảng mà chúng ta muốn nối. Không có bất kỳ tham số nào, concatenate() nối theo hàng.

Mã của chúng tôi trả về:

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

Các mảng của chúng ta được nối với nhau bằng các hàng.

Nối theo cột

Bạn có thể sử dụng phương pháp nối để hợp nhất hai mảng theo cột.

Để thực hiện việc này, chúng ta cần giới thiệu một tham số mới:axis. Theo mặc định, giá trị này là 0. Giá trị này tương ứng với trục x hoặc trục hàng. Chúng tôi có thể ghi đè giá trị này và đặt nó thành 1. Điều này sẽ hợp nhất hai mảng của chúng tôi theo cột.

Hãy nối hai mảng của chúng ta theo cột:

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

Mã của chúng tôi gần giống như ví dụ cuối cùng của chúng tôi. Sự khác biệt là chúng tôi đã chỉ định tham số axis =1. Hãy xem điều gì sẽ xảy ra khi chúng tôi chạy mã của mình:

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

Các mảng của chúng tôi được hợp nhất theo cột.

Ghép nhiều hơn hai mảng

concatenate() phương thức có thể nối bất kỳ số mảng nào. Hãy thử nối ba mảng trên một trục hoành. Các mảng mà chúng ta sẽ làm việc chứa tất cả cá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 xác định các mảng của chúng ta bằng 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, chúng ta có thể sử dụng concatenate để hợp nhất chúng với nhau:

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

Chúng tôi đã chỉ định ba mảng của mình dưới dạng một bộ trong concatenate() phương pháp. Khi kết hợp, các mảng này tương ứng với tất cả các số từ 1 đến 27.

Hãy chạy chương trình của chúng tôi:

[[ 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 của chúng ta hiện được gán cho biến “final_array”. Chúng tôi đã in biến này ra bảng điều khiển để cho thấy rằng các mảng của chúng tôi đã được hợp nhất thành công.

Kết luận

NumPy concatenate() phương thức nối hai hoặc nhiều mảng NumPy. Mảng được nối trên trục tung theo mặc định. Bạn có thể nối các mảng trên truy cập ngang bằng cách sử dụng cờ axis =1.

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

Bây giờ, bạn đã sẵn sàng để bắt đầu nối các mảng NumPy như một chuyên gia Python!