normalnie używamJaki jest najszybszy sposób na podzielenie macierzy scipy.sparse?
matrix[:, i:]
To nie wydaje się działać tak szybko, jak się spodziewałem.
normalnie używamJaki jest najszybszy sposób na podzielenie macierzy scipy.sparse?
matrix[:, i:]
To nie wydaje się działać tak szybko, jak się spodziewałem.
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()
Ale matrix.A doprowadzi do MemoryError, jeśli macierz jest bardzo duża. – Munichong
umysłu benchmarking to dla nas? może nawet użyć 'timeit'? –