2010-11-11 11 views
14

Tôi có một mảng 2x2 NumPy:NumPy: Kết nối đa chiều và unidimensional mảng

x = array(([[1,2],[4,5]])) 

mà tôi phải sáp nhập (hoặc chồng, nếu bạn muốn) với một mảng một chiều:

y = array(([3,6])) 

bằng cách thêm nó vào cuối hàng, do đó tạo một mảng có khối lượng 2x3 sẽ xuất ra như sau:

mảng ([[1, 2, 3], [4, 5, 6]])

nay là phương pháp được đề nghị cho điều này trong các hướng dẫn NumPy là:

hstack((x,y)) 

tuy nhiên điều này không làm việc, trả lại báo lỗi sau:

ValueError: arrays must have same number of dimensions

Cách giải quyết chỉ có thể có vẻ là để làm điều này:

hstack((x, array(([y])).T)) 

hoạt động, nhưng có vẻ và nghe khá đáng sợ. Dường như không có cách nào khác để chuyển đổi mảng đã cho, để hstack có thể tiêu hóa nó. Tôi đã tự hỏi, có cách nào để làm việc này không? Sẽ không có cách nào để numpy để đoán những gì tôi muốn làm gì? câu trả lời

Trả lời

27

unutbu của hoạt động nói chung, nhưng trong trường hợp này cũng có np.column_stack

>>> x 
array([[1, 2], 
     [4, 5]]) 
>>> y 
array([3, 6]) 

>>> np.column_stack((x,y)) 
array([[1, 2, 3], 
     [4, 5, 6]]) 
2

Cũng làm việc:

In [22]: np.append(x, y[:, np.newaxis], axis=1) 
Out[22]: 
array([[1, 2, 3], 
     [4, 5, 6]])