Nói chung, bạn có thể kết hợp toàn bộ chuỗi mảng dọc theo bất kỳ trục nào:
numpy.concatenate[ LIST, axis=0 ]
Nhưng bạn phải lo lắng về hình dạng và chiều của mỗi mảng trong danh sách [đối với đầu ra 3x5 2 chiều, bạn cần đảm bảo rằng tất cả chúng đều là mảng N-by-5 2 chiều rồi]. Nếu bạn muốn kết hợp các mảng 1 chiều dưới dạng các hàng của đầu ra 2 chiều, bạn cần mở rộng chiều của chúng.do have to worry about the shape and dimensionality of each array in the list [for a 2-dimensional 3x5 output, you need to ensure that they are all 2-dimensional n-by-5 arrays already]. If you want to concatenate 1-dimensional arrays as the rows of a 2-dimensional output, you need to expand their dimensionality.
Như câu trả lời của Jorge chỉ ra, cũng có chức năng
numpy.stack[ LIST, axis=0 ]
3, được giới thiệu trong Numpy 1.10:numpy.stack[ LIST, axis=0 ]
Điều này có cách tiếp cận bổ sung: nó tạo ra một cái nhìn mới về mỗi mảng đầu vào và thêm một kích thước bổ sung [trong trường hợp này, ở bên trái, do đó, mỗi mảng 1D ____ 14 thành phần ba trở thành mảng 1-by -____ 14 2D] trước khi kết nối. Nó sẽ chỉ hoạt động nếu tất cả các mảng đầu vào có hình dạng giống nhau.
numpy.stack[ LIST, axis=0 ]
6 [hoặc tương đương numpy.stack[ LIST, axis=0 ]
7] thường là một giải pháp dễ sử dụng hơn vì nó sẽ có một chuỗi các mảng 1 và/hoặc 2 chiều và tự động mở rộng chiều khi cần thiết và chỉ khi cần thiết, trước khi kết nối toàn bộ danh sách với nhau. Trong trường hợp cần một kích thước mới, nó được thêm vào bên trái. Một lần nữa, bạn có thể kết hợp toàn bộ danh sách cùng một lúc mà không cần lặp lại:numpy.vstack[ LIST ]
Hành vi linh hoạt này cũng được thể hiện bằng phím tắt cú pháp
numpy.stack[ LIST, axis=0 ]
8 [lưu ý các dấu ngoặc vuông]. Điều này tốt cho việc kết hợp một vài mảng được đặt tên rõ ràng nhưng không tốt cho tình huống của bạn vì cú pháp này sẽ không chấp nhận một chuỗi các mảng, như numpy.stack[ LIST, axis=0 ]
9 của bạn.Ngoài ra còn có một chức năng tương tự
numpy.vstack[ LIST ]
0 và phím tắt numpy.vstack[ LIST ]
1, cho xếp chồng ngang [khôn ngoan], cũng như một hàm gần như tương tự cố gắng kết hợp các mảng 1-D từ đầu đến cuối thay vì coi chúng là cột].Cuối cùng, trong trường hợp cụ thể của xếp chồng dọc của mảng 1-D, những điều sau đây cũng hoạt động:
numpy.array[ LIST ]
... Bởi vì các mảng có thể được xây dựng từ một chuỗi các mảng khác, thêm một chiều mới cho đầu.
Bài đăng này từ Stack Overflow sẽ cung cấp cho bạn những gì bạn muốn. Mã ma thuật sôi sục đến sau.
flat_list = [item for sublist in l for item in sublist]
Bạn cũng có thể lặp qua danh sách các danh sách và hợp nhất chúng.
lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
merged_list = []
for l in lists:
merged_list += l
print[merged_list]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Bạn có thể sử dụng một trong hai phương thức sau để tạo một mảng mảng trong Python bằng gói Numpy:
Phương pháp 1: Kết hợp các mảng riêng lẻ
import numpy as np
array1 = np.array[[1, 2, 3]]
array2 = np.array[[4, 5, 6]]
array3 = np.array[[7, 8, 9]]
all_arrays = np.array[[array1, array2, array3]]
Phương pháp 2: Tạo mảng mảng trực tiếp
import numpy as np
all_arrays = np.array[[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]]
Các ví dụ sau đây cho thấy cách sử dụng từng phương pháp trong thực tế.
Phương pháp 1: Kết hợp các mảng riêng lẻ
Phương pháp 2: Tạo mảng mảng trực tiếp
import numpy as np
#define individual arrays
array1 = np.array[[10, 20, 30, 40, 50]]
array2 = np.array[[60, 70, 80, 90, 100]]
array3 = np.array[[110, 120, 130, 140, 150]]
#combine individual arrays into one array of arrays
all_arrays = np.array[[array1, array2, array3]]
#view array of arrays
print[all_arrays]
[[ 10 20 30 40 50]
[ 60 70 80 90 100]
[110 120 130 140 150]]
Phương pháp 2: Tạo mảng mảng trực tiếp
Các ví dụ sau đây cho thấy cách sử dụng từng phương pháp trong thực tế.
import numpy as np
#create array of arrays
all_arrays = np.array[[[10, 20, 30, 40, 50],
[60, 70, 80, 90, 100],
[110, 120, 130, 140, 150]]]
#view array of arrays
print[all_arrays]
[[ 10 20 30 40 50]
[ 60 70 80 90 100]
[110 120 130 140 150]]
Mã sau đây cho thấy cách tạo một mảng mảng bằng cách kết hợp các mảng riêng lẻ:
Mã sau đây cho thấy cách tạo một mảng mảng trực tiếp:
Lưu ý rằng mảng mảng này khớp với phương thức được tạo bằng phương thức trước đó.shape function to retrieve the dimensions of an array of arrays:
numpy.stack[ LIST, axis=0 ]
0Cách truy cập các phần tử trong một mảng mảng
Bạn có thể sử dụng chức năng hình dạng để truy xuất kích thước của một mảng mảng:size function to see how many total values are in the array of arrays:
numpy.stack[ LIST, axis=0 ]
1Điều này cho chúng ta biết rằng có ba hàng và năm cột trong mảng mảng.
Bạn có thể sử dụng chức năng kích thước để xem tổng số giá trị trong mảng mảng:brackets to access elements in certain positions of the array of arrays.
Điều này cho chúng ta biết rằng có 15 tổng giá trị trong mảng mảng.
numpy.stack[ LIST, axis=0 ]
2Bạn có thể sử dụng dấu ngoặc để truy cập các phần tử ở một số vị trí nhất định của mảng mảng.
Ví dụ: bạn có thể sử dụng cú pháp sau để truy xuất giá trị trong mảng đầu tiên nằm ở vị trí chỉ mục 3:
Chúng tôi có thể sử dụng cú pháp này để truy cập bất kỳ giá trị nào mà chúng tôi thích trong mảng mảng.
Tài nguyên bổ sung
How to Create Pandas DataFrame from NumPy Array
How to Convert Pandas DataFrame to NumPy Array