2013-10-30 23 views
5

Tôi muốn sử dụng ma trận thưa thớt để trình bày tính năng BOW. Tôi đã thử nghiệm với coo_matrix từ scipy, nhưng nó dường như không hỗ trợ những gì tôi muốn làm:Truy cập các mục nhập đơn lẻ trong Ma trận thưa thớt bằng Python

Tôi muốn khởi tạo ma trận của tất cả các số không và sau đó thay đổi một mục nhập cho phù hợp. Nhưng khi tôi cố gắng để chỉ số ma trận như thế nào tôi nghĩ rằng tôi nên - myMatrix [0] [0] = 1 (hoặc thậm chí myMatrix [0] [0] [0] = 1), ví dụ - nó thay đổi tất cả các giá trị liên tiếp đến 1. Tôi muốn tạo một mục duy nhất 1.

Tôi có thể làm điều này dễ dàng với các ma trận khó khăn, nhưng tôi muốn sử dụng ma trận thưa thớt cho hiệu quả không gian.

+0

Hãy thử 'myMatrix [0, 0] = 1', điều đó sẽ giải quyết được vấn đề của bạn. – Jaime

+0

Vâng, điều này hoạt động, cảm ơn. Nhưng bạn phải có .todense() khi bạn khởi tạo ma trận. – airpierre

Trả lời

4

Sử dụng quyền sparse loại giúp.

from scipy import sparse 
M = sparse.lil_matrix((10,10)) 
M[1,1] = 1 
M[5,5] = 1 
# <10x10 sparse matrix of type '<type 'numpy.float64'>' 
# with 2 stored elements in LInked List format> 

dok cũng hoạt động. csr đề xuất sử dụng lil. 'coo' không thể được thiết lập theo cách này. Sau khi điền nó rất dễ dàng để chuyển đổi sang định dạng khác.

+0

+1 để chỉnh sửa vào Halloween –

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