2016-02-17 34 views
8

Tôi có một mảng 2D có kích thước [[1,2,3]]. tôi cần phải nối thêm một mảng 1D NumPy, (nói [4,5,6]) với nó, để nó trở thành [[1,2,3], [4,5,6]]Nối mảng 1d vào mảng 2d trong Numpy Python

Đây là một cách dễ dàng có thể sử dụng danh sách, nơi bạn chỉ cần gọi thêm thuộc danh 2D.

Nhưng làm thế nào để bạn làm điều đó trong mảng Numpy?

np.concatenatenp.append không hoạt động. họ chuyển đổi mảng thành 1D vì một lý do nào đó.

Cảm ơn!

+0

'vstack' làm' np.concatenate ([np.atleast_2d (m) cho m trong TUP], 0) '- nói cách khác - chắc chắn rằng tất cả các yếu tố đầu vào 2d và sau đó tiếp nhau. – hpaulj

Trả lời

7

Bạn muốn vstack:

In [45]: a = np.array([[1,2,3]]) 

In [46]: l = [4,5,6] 

In [47]: np.vstack([a,l]) 
Out[47]: 
array([[1, 2, 3], 
     [4, 5, 6]]) 

Bạn có thể stack nhiều hàng với điều kiện là Các mảng phải có cùng hình dạng cùng tất cả ngoại trừ trục đầu tiên.

In [53]: np.vstack([a,[[4,5,6], [7,8,9]]]) 
Out[53]: 
array([[1, 2, 3], 
     [4, 5, 6], 
     [4, 5, 6], 
     [7, 8, 9]]) 
+0

nó không hoạt động tương tự với hstack mặc dù ... col_vector_to_append = np.column_stack ([4, 5, 6]) .T là cần thiết – Mehdi

Các vấn đề liên quan