Source code for schrodinger.application.matsci.mlearn.sklearn_json.csr
"""
# Third-party code. No Schrodinger Copyright.
"""
import numpy as np
import scipy as sp
[docs]def serialize_csr_matrix(csr_matrix):
    serialized_csr_matrix = {
        'meta': 'csr',
        'data': csr_matrix.data.tolist(),
        'indices': csr_matrix.indices.tolist(),
        'indptr': csr_matrix.indptr.tolist(),
        '_shape': csr_matrix._shape,
    }
    return serialized_csr_matrix 
[docs]def deserialize_csr_matrix(csr_dict,
                           data_type=np.float64,
                           indices_type=np.int32,
                           indptr_type=np.int32):
    csr_matrix = sp.sparse.csr_matrix(tuple(csr_dict['_shape']))
    csr_matrix.data = np.array(csr_dict['data']).astype(data_type)
    csr_matrix.indices = np.array(csr_dict['indices']).astype(indices_type)
    csr_matrix.indptr = np.array(csr_dict['indptr']).astype(indptr_type)
    return csr_matrix