2016-12-31 13 views
5

Tôi có một mảng như thế này như cột nhãn (2 nhãn: 0 và 1), ví dụ:Làm thế nào để chuyển đổi một lớp cột nhị phân để NumPy mảng

[0,1,0,1,1] 

Giả sử tôi muốn chuyển đổi mảng này đến một ma trận sumpy với hình dạng (5,2) (5 yếu tố, 2 nhãn). Làm thế nào tôi có thể làm điều đó một cách tầm thường bằng cách sử dụng bất kỳ thư viện util?

Kết quả tôi muốn là như thế này:

[[0,1][1,0],[0,1],[1,0],[1,0]] 
+0

xin vui lòng gửi kết quả bạn muốn có – ppasler

+0

chỉ chỉnh sửa câu hỏi về kết quả – xtiger

+0

Bạn muốn thêm kết quả khác nhãn (0 đến 1 và ngược lại)? – ppasler

Trả lời

7

Bạn có thể sử dụng NumPy broadcasting -

(a[:,None] != np.arange(2)).astype(int) 

mẫu chạy -

In [7]: a = np.array([0,1,0,1,1]) 

In [8]: (a[:,None] != np.arange(2)).astype(int) 
Out[8]: 
array([[0, 1], 
     [1, 0], 
     [0, 1], 
     [1, 0], 
     [1, 0]]) 

# Convert to list if needed 
In [14]: (a[:,None] != np.arange(2)).astype(int).tolist() 
Out[14]: [[0, 1], [1, 0], [0, 1], [1, 0], [1, 0]] 
+0

cảm ơn, đây là những gì Tôi muốn, đã cho tôi một số giờ để tìm kiếm điều này :) – xtiger

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