Как присвоить значения ломтикам в разреженной огромной матрице Scipy - PullRequest
0 голосов
/ 23 апреля 2020
  • У меня есть огромная матрица под названием Mat_A, когда я попытался нарезать ее и присвоить значения, я получил следующую ошибку:
    • Mat_A[:,0 ] = np.ravel(Mat_A.sum(axis=0)) TypeError: coo_matrix' object does not support item assignment
  • Как я могу присвоить значения в том же духе плотной матрице weights перед отправкой в ​​разреженное пространство?

Mat_A

Mat_A = sparse.coo_matrix((weights, (i_indices_O, j_indices_O)), shape=(pixel_nb_O, pixel_nb_O))
Mat_A[:,0 ] = np.ravel(Mat_A.sum(axis=0))
Mat_A[:,1:] = 0
Mat_A = Mat_A.tocsr()

1 Ответ

2 голосов
/ 23 апреля 2020
Разреженный формат

coo_matrix имеет некоторые недостатки, которые хорошо упоминаются в документах :

напрямую не поддерживает:

  • арифметические c операции
  • срезы

COO - быстрый формат для построения разреженных матриц, хотя для арифметических c операции вы должны переключиться на CSR или CSC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...