Python kết hợp hai vectơ thành một ma trận
Thường thì bạn có thể có hai hoặc nhiều mảng NumPY và muốn nối/nối/hợp nhất chúng thành một mảng duy nhất. Python cung cấp nhiều tùy chọn để nối/nối các mảng NumPy Show
Các hoạt động phổ biến bao gồm hai mảng 2d đã cho, làm cách nào chúng ta có thể nối chúng theo hàng hoặc theo cột. Hàm nối của NumPy cho phép bạn nối hai mảng theo hàng hoặc theo cột. Chúng ta hãy xem một vài ví dụ về chức năng nối của NumPy Trước tiên chúng ta hãy nhập gói NumPy # import numpy import numpy as np Hãy để chúng tôi tạo một mảng NumPy bằng hàm arange trong NumPy. Mảng 1d bắt đầu từ 0 và kết thúc ở 8 array = np.arange(9) array Chúng ta có thể sử dụng chức năng định hình lại của NumPy để chuyển đổi mảng 1d thành mảng 2d có kích thước 3×3, 3 hàng và 3 cột. Chức năng định hình lại NumPy lấy một Tuple làm đầu vào array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) Hãy để chúng tôi tạo mảng 2d thứ hai bằng cách sử dụng các hàm sắp xếp lại và định hình lại. Mảng 2d thứ hai bắt đầu từ 10 và kết thúc ở 18 >array2D_2 = np.arange(10,19).reshape(3,3) >array2D_2 array([[10, 11, 12], [13, 14, 15], [16, 17, 18]]) nối NumPyHàm nối của NumPy có thể được sử dụng để nối hai mảng theo hàng hoặc theo cột. Hàm nối có thể nhận hai hoặc nhiều mảng có cùng hình dạng và theo mặc định, nó nối theo hàng i. e. trục=0. Mảng kết quả sau khi nối theo hàng có dạng 6 x 3, i. e. 6 hàng và 3 cột Làm cách nào để nối 2 mảng NumPy theo hàng?# concatenate 2 numpy arrays: row-wise >np.concatenate((array2D_1, array2D_2)) array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [10, 11, 12], [13, 14, 15], [16, 17, 18]]) Làm cách nào để nối 2 mảng NumPy theo cột?Chúng ta cũng có thể nối 2 mảng NumPy theo cột bằng cách chỉ định axis=1. Bây giờ mảng kết quả là một ma trận rộng với nhiều cột hơn hàng; # concatenate 2 numpy arrays: column-wise >np.concatenate((array2D_1,array2D_2),axis=1) array([[ 0, 1, 2, 10, 11, 12], [ 3, 4, 5, 13, 14, 15], [ 6, 7, 8, 16, 17, 18]]) Làm cách nào để nối nhiều hơn 2 mảng NumPy theo hàng?Hàm nối của NumPy có thể được sử dụng với hơn 2 mảng. Dưới đây là một ví dụ về nối 3 mảng NumPy theo hàng. Chúng tôi chỉ định ba mảng mà chúng tôi muốn nối thành một bộ # concatenate 3 numpy arrays: row-wise >np.concatenate((array2D_1, array2D_2, array2D_1)) array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [10, 11, 12], [13, 14, 15], [16, 17, 18], [ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8]]) Ngoài chức năng nối, NumPy còn cung cấp hai chức năng tiện lợi là hstack và vstack để xếp/kết hợp các mảng theo chiều ngang hoặc chiều dọc Cả hstack và vstack, dưới mui xe gọi concatenate với các tùy chọn axis =1 và axis=0 Dưới đây là các ví dụ về việc sử dụng hstack và vstack Ví dụ vstack NumPyVstack của NumPy sắp xếp các mảng theo thứ tự theo chiều dọc i. e. hàng khôn ngoan. Và kết quả giống như sử dụng nối với axis=0 >np.vstack((array2D_1, array2D_2)) array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [10, 11, 12], [13, 14, 15], [16, 17, 18]]) Một cách sử dụng phổ biến khác của hstack của Numpy là sử dụng nó để kết hợp hai mảng 1d-numpy thành một mảng 2d-numpy. Ví dụ, nếu chúng ta có hai mảng một chiều, ________số 8Chúng ta có thể sử dụng vstack của Numpy để tạo mảng 2d có kích thước 2×4 print(np.vstack((x, y))) [[1. 1. 1. 1.] [1. 2. 3. 4.]] Tương tự với transpose ta được mảng 2d 4×2 dùng vstack array = np.arange(9) array0 Ví dụ hstack NumPyHstack của NumPy sắp xếp các mảng theo chiều ngang i. e. cột khôn ngoan. Và kết quả giống như sử dụng nối với axis=1 array = np.arange(9) array1 Làm cách nào để nối nhiều mảng 1d?Hàm nối của NumPy cũng có thể được sử dụng để nối nhiều hơn hai mảng có nhiều mảng. Đây là một ví dụ, trong đó chúng tôi có ba mảng 1d-numpy và chúng tôi nối ba mảng thành một mảng 1d duy nhất Hãy sử dụng tạo ba mảng 1d trong NumPy array = np.arange(9) array2 Và chúng ta có thể sử dụng np. nối với ba mảng numpy trong một danh sách làm đối số để kết hợp thành một mảng 1d duy nhất Làm cách nào để nối các mảng NumPy trong Python? . Ghép nối đề cập đến việc đặt nội dung của hai hoặc nhiều mảng trong một mảng. Trong Python NumPy, chúng ta có thể nối các mảng theo trục (dọc hoặc ngang), trong khi trong SQL, chúng ta nối các bảng dựa trên các khóa Bạn có thể chuyển một chuỗi các mảng mà bạn muốn nối vào hàm concatenate(), cùng với trục. Nếu trục không được thông qua một cách rõ ràng, nó được lấy bằng 0. Trong bài viết này, tôi sẽ giải thích cách nối các mảng NumPy (ndarray) với các ví dụ bằng cách sử dụng các hàm như concatenate(), array = np.arange(9) array36, array = np.arange(9) array37, array = np.arange(9) array38, array = np.arange(9) array39 Lưu ý rằng trong Python NumPy, array = np.arange(9) array80 là một mảng đa chiều, đồng nhất gồm các mục có kích thước cố định cùng loại. Bạn có thể tạo đối tượng ndarray bằng cách sử dụng array = np.arange(9) array81 1. Ví dụ nhanh về mảng nối NumPyNếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách hợp nhất hai mảng NumPy. Ngoài ra, bạn cũng có thể sử dụng NumPy. hàm append() nối thêm mảng array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])0 Hãy xem từng ví dụ này 2. Ghép các mảng NumPySử dụng array = np.arange(9) array35 để hợp nhất nội dung của hai hoặc nhiều mảng thành một mảng. Hàm này lấy một số đối số cùng với các mảng NumPy để nối và trả về một mảng Numpy ndarray. Lưu ý rằng phương thức này cũng lấy axis làm đối số khác, khi không được chỉ định, nó sẽ mặc định là 0 Ghép nối đề cập đến việc đặt nội dung của hai hoặc nhiều mảng trong một mảng. Trong Python NumPy, chúng ta có thể nối các mảng theo trục (dọc hoặc ngang), trong khi trong SQL, chúng ta nối các bảng dựa trên các khóa array = np.arange(9) array3 Sản lượng dưới sản lượng. Nếu bạn nhận thấy nó chỉ nối thêm các phần tử từ mảng thứ hai vào mảng đầu tiên và trả về một mảng NumPy mới array = np.arange(9) array8 3. sử dụng numpy. nối () với trục = 1Bạn cũng có thể nối hai mảng NumPy theo cột bằng cách chỉ định axis=1. Bây giờ mảng kết quả là một ma trận rộng với nhiều cột hơn hàng. Với array = np.arange(9) array83, nó trả về một mảng các mảng (Mảng lồng nhau) array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])5 Sản lượng dưới sản lượng array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])6 Bây giờ hãy xem cách hợp nhất các mảng NumPy lồng nhau array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])7 Sản lượng dưới sản lượng array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])8 4. sử dụng numpy. stack() Chức năng tham gia mảngNgoài ra, hãy sử dụng hàm array = np.arange(9) array84 để nối một chuỗi các mảng dọc theo một trục mới. Bạn chuyển một chuỗi các mảng mà bạn muốn nối vào hàm array = np.arange(9) array84 cùng với trục. Nếu trục không được thông qua một cách rõ ràng, nó được lấy bằng không >array2D_2 = np.arange(10,19).reshape(3,3) >array2D_2 array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])1 Sản lượng dưới sản lượng. Vì tôi đã sử dụng array = np.arange(9) array83 nên nó được nối trên các cột array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])6 5. Sử dụng NumPy. Hàm hstack ()Tương tự, bạn cũng có thể nối các mảng theo chiều ngang trong Python NumPy bằng hàm array = np.arange(9) array37. hstack() được sử dụng để xếp mảng theo chiều ngang >array2D_2 = np.arange(10,19).reshape(3,3) >array2D_2 array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])5 Sản lượng dưới sản lượng array = np.arange(9) array8 6. Sử dụng NumPy. hàm vstack()Bạn có thể sử dụng array = np.arange(9) array88 để sắp xếp các mảng theo thứ tự theo chiều dọc array = np.arange(9) array31 Sản lượng dưới sản lượng array = np.arange(9) array32 7. sử dụng numpy. dstack() Chức năng nối các mảngSử dụng array = np.arange(9) array89 để xếp theo chiều cao, bằng với chiều sâu array = np.arange(9) array33 Sản lượng dưới sản lượng. Đầu ra này giống như sử dụng array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])50 với array = np.arange(9) array83 array = np.arange(9) array34 8. Sự kết luậnTrong bài viết này, tôi đã giải thích cách nối NumPy hai hoặc nhiều mảng bằng cách sử dụng array2D_1 = array.reshape((3,3)) array2D_1 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])50, array = np.arange(9) array36, array = np.arange(9) array37, array = np.arange(9) array38, array = np.arange(9) array39 với các ví dụ. Ghép nối đề cập đến việc đặt nội dung của hai hoặc nhiều mảng trong một mảng. Trong Python NumPy, chúng ta có thể nối các mảng theo trục (dọc hoặc ngang), trong khi trong SQL, chúng ta nối các bảng dựa trên các khóa |