You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何像NumPy二维数组一样提取Scipy稀疏矩阵的子矩阵?

Scipy稀疏矩阵提取子矩阵的方法

当然可以用类似NumPy的切片语法提取Scipy稀疏矩阵的子矩阵,不过要注意不同稀疏矩阵格式的兼容性:

  • CSR/CSC格式(最常用):直接支持行、列的切片操作,语法和NumPy几乎一致,即使目标区域和原矩阵的非零块不重合也能正常提取。
    示例代码:

    import scipy.sparse as sp
    
    # 创建4x4的CSR稀疏矩阵
    sparse_arr = sp.random(4, 4, density=0.5, format='csr')
    # 提取前2行、后2列的子矩阵
    sub_matrix = sparse_arr[0:2, 2:4]
    

    切片后得到的子矩阵依然是稀疏格式,只会保留目标区域内的非零元素,零元素不会被存储,完全适配目标区域和非零块不一致的场景。

  • COO/DOK等其他格式:这类格式不直接支持切片,需要先转换为CSR或CSC格式再操作:

    # COO格式转CSR后切片
    sparse_arr_coo = sp.random(4, 4, density=0.5, format='coo')
    sub_matrix = sparse_arr_coo.tocsr()[0:2, 2:4]
    

内容的提问来源于stack exchange,提问作者Hiranmay Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:24:35