题解|实现压缩行稀疏矩阵格式转换

实现压缩行稀疏矩阵(CSR)格式转换

https://www.nowcoder.com/practice/29f0ddee6cd54906928ce500be7c8927?tpId=377&tags=&title=&difficulty=&judgeStatus=&rp=0&sourceUrl=%2Fexam%2Foj&gioEnter=menu

压缩行稀疏矩阵(CSR)格式是一种特殊的矩阵存储格式,其特点是只存储非零元素的值、行号和列指针。本质上是一种三元组表示法。

标准代码如下

def compressed_row_sparse_matrix(dense_matrix):
    vals = []
    col_idx = []
    row_ptr = [0]

    for row in dense_matrix:
        for j, val in enumerate(row):
            if val != 0:
                vals.append(val)
                col_idx.append(j)
        row_ptr.append(len(vals))

    return vals, col_idx, row_ptr

除此之外,还可以使用scipy库中的csr_matrix函数来实现压缩行稀疏矩阵的存储。

def compressed_row_sparse_matrix(dense_matrix):
    from scipy.sparse import csr_matrix
    sparse = csr_matrix(dense_matrix)
    return sparse.data.tolist(), sparse.indices.tolist(), sparse.indptr.tolist()
全部评论

相关推荐

09-24 18:30
已编辑
长春工业大学 产品经理
小肥罗:HR就是好人的缩写哈哈哈哈
点赞 评论 收藏
分享
牛客83265014...:完了,连现在都没开始面,13号投的是不是晚了
秋招的第一个offer,...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务