Generating a dense matrix from a sparse matrix in numpy python

前端 未结 2 960
自闭症患者
自闭症患者 2020-12-23 14:12

I have a Sqlite database that contains following type of schema:

termcount(doc_num, term , count)

This table contains terms with their resp

相关标签:
2条回答
  • 2020-12-23 14:13
     from scipy.sparse import csr_matrix
     A = csr_matrix([[1,0,2],[0,3,0]])
     >>>A
     <2x3 sparse matrix of type '<type 'numpy.int64'>'
        with 3 stored elements in Compressed Sparse Row format>
     >>> A.todense()
       matrix([[1, 0, 2],
               [0, 3, 0]])
     >>> A.toarray()
          array([[1, 0, 2],
                [0, 3, 0]])
    

    this is an example of how to convert a sparse matrix to a dense matrix taken from scipy

    0 讨论(0)
  • 2020-12-23 14:19

    I solved this problem using Pandas. Because we want to keep the document ids and term ids.

    from pandas import DataFrame 
    
    # A sparse matrix in dictionary form (can be a SQLite database). Tuples contains doc_id        and term_id. 
    doc_term_dict={('d1','t1'):12, ('d2','t3'):10, ('d3','t2'):5}
    
    #extract all unique documents and terms ids and intialize a empty dataframe.
    rows = set([d for (d,t) in doc_term_dict.keys()])  
    cols = set([t for (d,t) in doc_term_dict.keys()])
    df = DataFrame(index = rows, columns = cols )
    df = df.fillna(0)
    
    #assign all nonzero values in dataframe
    for key, value in doc_term_dict.items():
        df[key[1]][key[0]] = value   
    
    print df
    

    Output:

        t2  t3  t1
    d2  0  10   0
    d3  5   0   0
    d1  0   0  12
    
    0 讨论(0)
提交回复
热议问题