Pracuję w programie do analizy Power System i muszę pracować z rzadkimi macierzami.Dodaj wartości do rzadkiej macierzy Scipy z indeksami i wartościami
Jest rutynowe gdzie wypełnić rzadki matrycy tylko z poniższej rozmowy:
self.A = bsr_matrix((val, (row,col)), shape=(nele, nbus), dtype=complex)
W tej macierzy nie zmienia się w czasie. Kolejna macierz zmienia się z czasem i muszę ją zaktualizować. Czy istnieje sposób, że mając na przykład:
co = [ 2, 3, 6]
row = [ 5, 5, 5]
val = [ 0.1 + 0.1j, 0.1 - 0.2j, 0.1 - 0.4j]
mogę dodać te do wcześniej inicjowane rozrzedzony matrycy? Jak byłoby to bardziej pythonic sposób to zrobić?
Dziękuję
dziękuję. Przeczytałem w dokumentacji, że: _By domyślnie przy konwersji do formatu CSR lub CSC, duplikaty (i, j) będą sumowane. Ułatwia to wydajną budowę macierzy elementów skończonych i tym podobnych. (patrz przykład) _ To mniej więcej rozwiązuje problem, który miałem. W moim kodzie jest kilka obiektów, które przyczyniają się do tej macierzy i dwa obiekty mogą przyczynić się do tego samego (i, j) wpisu. Oznacza to, że za każdym razem, gdy chcę dodać wkład jednego obiektu, muszę przebudować macierz? – amalbe
cześć ... tak, możesz użyć różnych obiektów do zbudowania macierzy, po prostu przypisując parametry 'col' i' row' do 'coo_matrix'. Nie jestem jednak pewien, czy 'SciPy' stworzy kopię wewnętrzną, czy nie, podczas budowania macierzy rzadkiej –