2013-10-31 17 views
20

Cách hiệu quả nhất để ghép các ma trận thưa thớt trong Python bằng SciPy/Numpy là gì?Kết hợp các ma trận thưa thớt bằng Python sử dụng SciPy/Numpy

Ở đây tôi sử dụng như sau:

>>> np.hstack((X, X2)) 
array([ <49998x70000 sparse matrix of type '<class 'numpy.float64'>' 
     with 1135520 stored elements in Compressed Sparse Row format>, 
     <49998x70000 sparse matrix of type '<class 'numpy.int64'>' 
     with 1135520 stored elements in Compressed Sparse Row format>], 
     dtype=object) 

Tôi muốn sử dụng cả hai dự đoán trong một hồi quy, nhưng các định dạng hiện nay là rõ ràng không phải những gì tôi đang tìm kiếm. Có thể nhận được các thông tin sau:

<49998x1400000 sparse matrix of type '<class 'numpy.float64'>' 
    with 2271040 stored elements in Compressed Sparse Row format> 

Quá lớn để chuyển đổi thành định dạng sâu.

Trả lời

35

Bạn có thể sử dụng scipy.sparse.hstack:

from scipy.sparse import hstack 
hstack((X, X2)) 

Sử dụng numpy.hstack sẽ tạo ra một mảng với hai đối tượng ma trận thưa thớt.

+0

Dường như hstack khá chậm, hãy kiểm tra bài đăng này trên một câu hỏi tương tự [link] (https://stackoverflow.com/a/33259578/6485667) – simeon

+0

@simeon thú vị rằng nhóm dev của Sciper đã không áp dụng giải pháp hiệu quả như vậy –

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