2012-12-12 9 views

Trả lời

6

Nếu bạn muốn lấy ma trận thưa thớt làm đầu ra, cách nhanh nhất để thực hiện cắt hàng là có loại csr và đối với các cột cắt csc, as detailed here. Trong cả hai trường hợp, bạn chỉ cần thực hiện những gì bạn đang làm:

matrix[l1:l2,c1:c2] 

Nếu bạn muốn một kiểu khác như đầu ra có thể có cách nhanh hơn. In this other answer nó được giải thích nhiều phương pháp để cắt một ma trận và thời gian khác nhau của chúng so với. Ví dụ, nếu bạn muốn có một ndarray như sản lượng cắt nhanh nhất là:

matrix.A[l1:l2,c1:c2] 

hay:

matrix.toarray()[l1:l2,c1:c2] 

nhanh hơn nhiều so:

matrix[l1:l2,c1:c2].A #or .toarray() 
+7

Nhưng ma trận.A sẽ dẫn đến memoryError nếu ma trận là rất lớn. – Munichong