【发布时间】:2014-12-25 05:50:45
【问题描述】:
我希望能够将稀疏的 scipy 矩阵分开,然后将它们重新组合在一起。
例如,以稀疏数组开头:
# 0 1 0
# 3 0 5
# 0 7 0
将其拆分为 6 个稀疏数组:
# 0 1 0
# 3 0 5
#
# 0 7 0
换句话说,我希望函数 split_sparse 和 merge_sparse 使得以下测试通过:
# Humpty Dumpy sat on a wall
mat = np.arange(9)
mat[::2] = 0
mat=mat.reshape(3, 3)
mat=csr_matrix(mat)
# Humpy dumpty had a great fall
row_divs = [2]
col_divs = [1, 2]
split_mat = split_sparse(mat, row_divs, col_divs)
sparse_eq = lambda x, y: (x-y).nnz == 0
# All the kings horses and all the kings men
assert sparse_eq(split_mat[0, 0], csr_matrix([[0], [3]]))
assert sparse_eq(split_mat[0, 1], csr_matrix([[1], [0]]))
assert sparse_eq(split_mat[0, 2], csr_matrix([[0], [5]]))
assert sparse_eq(split_mat[1, 0], csr_matrix([[0]]))
assert sparse_eq(split_mat[1, 1], csr_matrix([[7]]))
assert sparse_eq(split_mat[1, 2], csr_matrix([[0]]))
# Pooled their efforts and put Humpy together again.
assert sparse_eq(merge_sparse(split_mat), mat)
【问题讨论】:
标签: numpy scipy sparse-matrix