не могу понять пример scipy.sparse.csr_matrix - PullRequest
0 голосов
/ 12 ноября 2018

Я не могу обернуться вокруг csr_matrix примеров в документации scipy: https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csr_matrix.html

Может кто-нибудь объяснить, как работает этот пример?

>>> row = np.array([0, 0, 1, 2, 2, 2])
>>> col = np.array([0, 2, 2, 0, 1, 2])
>>> data = np.array([1, 2, 3, 4, 5, 6])
>>> csr_matrix((data, (row, col)), shape=(3, 3)).toarray()
array([[1, 0, 2],
       [0, 0, 3],
       [4, 5, 6]])

Я полагаю, что это следующееэтот формат.

csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)])

where data, row_ind and col_ind satisfy the relationship a[row_ind[k], col_ind[k]] = data[k].

Что здесь a?

Ответы [ 3 ]

0 голосов
/ 24 января 2019

Насколько я понимаю, в массивах строк и столбцов у нас есть индексы, которые соответствуют ненулевым значениям в матрице. a [0, 0] = 1, a [0, 2] = 2, a [1, 2] = 3 и так далее. Поскольку у нас нет индексов для a [0, 1], a [1, 0], a [1, 1], поэтому соответствующие значения в матрице равны 0.

Также, возможно, это небольшое вступление будет полезно для вас: https://www.youtube.com/watch?v=Lhef_jxzqCg

0 голосов
/ 22 апреля 2019

row = np.array ([0, 0, 1, 2, 2, 2])
col = np.array ([0, 2, 2, 0, 1, 2])
data = np.array ([1, 2, 3, 4, 5, 6])

из вышеуказанных массивов;

для k в 0 ~ 5
a [row_ind [k], col_ind [k]] = данные [k]

                  a 
row[0],col[0] = [0,0] = 1 (from data[0])  
row[1],col[1] = [0,2] = 2 (from data[1])  
row[2],col[2] = [1,2] = 3 (from data[2])  
row[3],col[3] = [2,0] = 4 (from data[3])  
row[4],col[4] = [2,1] = 5 (from data[4])  
row[5],col[5] = [2,2] = 6 (from data[5])

так что давайте устроим матрицу 'a' по форме (3X3)

a
   0  1  2
0 [1, 0, 2]  
1 [0, 0, 3]  
2 [4, 5, 6]
0 голосов
/ 12 ноября 2018

Это разреженная матрица. Таким образом, он хранит явные индексы и значения в этих индексах. Так, например, поскольку row = 0 и col = 0 соответствуют 1 (первые записи всех трех массивов в вашем примере). Следовательно, [0,0] запись матрицы равна 1. И так далее.

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