1分鍾搞懂簡版,首先直接看例子:
1 >>> # Constructing a matrix using ijv format 2 >>> row = np.array([0, 3, 1, 0]) 3 >>> col = np.array([0, 3, 1, 2]) 4 >>> data = np.array([4, 5, 7, 9]) 5 >>> coo_matrix((data, (row, col)), shape=(4, 4)).toarray() 6 array([[4, 0, 9, 0], 7 [0, 7, 0, 0], 8 [0, 0, 0, 0], 9 [0, 0, 0, 5]])
經常的用法大概是這樣的:coo_matrix((data, (i, j)), [shape=(M, N)])
- 這里有三個參數:
data[:] 就是原始矩陣中的數據,例如上面的4,5,7,9;
i[:] 就是行的指示符號;例如上面row的第0個元素是0,就代表data中第一個數據在第0行;
j[:] 就是列的指示符號;例如上面col的第0個元素是0,就代表data中第一個數據在第0列;
綜合上面三點,對data中第一個數據4來說,就是原始矩陣中有4這個元素,它在第0行,第0列,即A[i[k], j[k]] = data[k]。以此類推,data中第2個數據5,在第3行,第3列。
最后,有個shape參數是告訴coo_matrix原始矩陣的形狀,除了上述描述的有數據的行列,其他地方都按照shape的形式補0。