Tôi thường sử dụngCách nhanh nhất để cắt một ma trận scipy.sparse là gì?
matrix[:, i:]
Nó dường như không hoạt động nhanh như tôi mong đợi.
Tôi thường sử dụngCách nhanh nhất để cắt một ma trận scipy.sparse là gì?
matrix[:, i:]
Nó dường như không hoạt động nhanh như tôi mong đợi.
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()
Nhưng ma trận.A sẽ dẫn đến memoryError nếu ma trận là rất lớn. – Munichong
tâm điểm chuẩn nó cho chúng ta? thậm chí có thể sử dụng 'timeit'? –