Aby rozwinąć na przekształcenie coo
macierz csr
do indeksu, oto kilka czasy dla małego rozrzedzony matrycy
Bądź matrycę
In [158]: M=sparse.coo_matrix([[0,1,2,0,0],[0,0,0,1,0],[0,1,0,0,0]])
In [159]: timeit M[1,2]
TypeError: 'coo_matrix' object is not subscriptable
In [160]: timeit M.tocsc()[1,2]
1000 loops, best of 3: 375 µs per loop
In [161]: timeit M.tocsr()[1,2]
1000 loops, best of 3: 241 µs per loop
In [162]: timeit M.todok()[1,2]
10000 loops, best of 3: 65.8 µs per loop
In [163]: timeit M.tolil()[1,2]
1000 loops, best of 3: 270 µs per loop
Widocznie wyboru pojedynczego elementu, dok
jest fastests (licząc czas konwersji). Ten format jest właściwie słownikiem, który oczywiście ma szybki dostęp do elementu.
Ale jeśli często uzyskujesz dostęp do całych wierszy lub całych kolumn lub powtarzania wierszy lub kolumn, musisz uważniej czytać dokumenty i wykonywać własne testy typowych tablic.
Jeśli ustawiasz wartości, a nie tylko je czytasz, czasy, a nawet implementacja mogą być różne. Otrzymasz ostrzeżenie o wydajności, jeśli spróbujesz zmienić element 0
w formacie lub csc
.
'mymatrix [i, j]' – Jaime
Próbowałem tego. Pojawia się następujący błąd: TypeError: obiekt "coo_matrix" nie ma atrybutu "__getitem__" – haripkannan
Zobacz inne rzadkie formaty – hpaulj