2012-12-12 14 views

Odpowiedz

6

Jeśli chcesz otrzymać rzadki macierzy jako wyjście najszybszy sposób to zrobić rząd krojenie jest mieć typ csr i dla kolumn krojenie csc, as detailed here. W obu przypadkach po prostu trzeba robić to, co aktualnie robi:

matrix[l1:l2,c1:c2] 

Jeśli chcesz inny rodzaj jako wyjście tam może szybszych sposobów. In this other answer Wyjaśniono wiele metod krojenia matrycy i ich różnych czasów w porównaniu. Na przykład, jeśli chcesz ndarray jako wyjście najszybciej krojenie jest:

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

czyli

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

znacznie szybciej niż:

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

Ale matrix.A doprowadzi do MemoryError, jeśli macierz jest bardzo duża. – Munichong

Powiązane problemy