如何从其 CSR 表示中恢复矩阵?
How to restore matrix from its CSR representation?
我不明白从 csr 表示中恢复矩阵的算法。例如我有这 3 个数组:
data = [1, 2, 3, 4, 1, 11]
ind = [0, 1, 3, 2, 1, 3]
indptr = [0, 3, 4, 6]
我们表示的矩阵:
[[1, 2, 0, 3],
[0, 0, 4, 0],
[0, 1, 0, 11]]
我需要做什么才能在没有任何外部库的情况下从这 3 个数组恢复第二个矩阵?
indptr
是 说 那
- 第一行 由 项目 0、1、2 组成
data
和 ind
- slice(0,3)
- 第二行 由
data
和 ind
的第 3 项组成 - slice(3, 4)
- 第三行 由 项目 4,5 组成
data
和 ind
- slice(4,6)
这个csr只是告诉你非零值在哪里——ind
是非零值的索引,data
是该指数的价值。
第一行有
- 索引 0、1、3 处的非零数据 -
ind[slice(0,3)]
- 这些索引处的数据是 1,2,3 -
data[slice(0,3)]
- 注意索引 2 丢失 - 它必须为零
除了只有三行非零数据(从indptr
收集)并且任何行的最大索引为三之外,没有指示矩阵的size/dimensions所以必须有四列。
我不明白从 csr 表示中恢复矩阵的算法。例如我有这 3 个数组:
data = [1, 2, 3, 4, 1, 11]
ind = [0, 1, 3, 2, 1, 3]
indptr = [0, 3, 4, 6]
我们表示的矩阵:
[[1, 2, 0, 3],
[0, 0, 4, 0],
[0, 1, 0, 11]]
我需要做什么才能在没有任何外部库的情况下从这 3 个数组恢复第二个矩阵?
indptr
是 说 那
- 第一行 由 项目 0、1、2 组成
data
和ind
- slice(0,3) - 第二行 由
data
和ind
的第 3 项组成 - slice(3, 4) - 第三行 由 项目 4,5 组成
data
和ind
- slice(4,6)
这个csr只是告诉你非零值在哪里——ind
是非零值的索引,data
是该指数的价值。
第一行有
- 索引 0、1、3 处的非零数据 -
ind[slice(0,3)]
- 这些索引处的数据是 1,2,3 -
data[slice(0,3)]
- 注意索引 2 丢失 - 它必须为零
除了只有三行非零数据(从indptr
收集)并且任何行的最大索引为三之外,没有指示矩阵的size/dimensions所以必须有四列。