稀疏矩陣之scipy中的coo_matrix函數


推薦直接看官方文檔:https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html#scipy.sparse.coo_matrix

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)])

這里有三個參數:
  1. data[:] 就是原始矩陣中的數據,例如上面的4,5,7,9;

  2. i[:] 就是行的指示符號;例如上面row的第0個元素是0,就代表data中第一個數據在第0行;

  3. 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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM