【问题标题】:Create 2 matrices based on list of index value根据索引值列表创建 2 个矩阵
【发布时间】:2017-10-22 14:30:14
【问题描述】:

我有一个 scipy 稀疏矩阵 - title - 和一个 python 列表 index。该列表包含与title 矩阵中的行相对应的整数。由此我希望创建 2 个新的 scipy 稀疏矩阵:

  • 一个应该包含title 中的所有行,除非索引号在index

  • 另一个矩阵应该包含title中的所有行,其中索引号在index

例如。

import numpy as np
from scipy import sparse
titles = sparse.csr_matrix(np.ones((5,5)))
index = [3,2]

print(matrix1.todense()) 的期望输出是:

[[ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]]

print(matrix2.todense()) 的期望输出是:

[[ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]]

【问题讨论】:

标签: python arrays numpy scipy sparse-matrix


【解决方案1】:

您可以使用np.setdiff1d 查找独占索引,并适当地索引titles

idx1 = [3, 2]
idx2 = np.setdiff1d(np.arange(titles.shape[0]), idx1)

matrix1 = titles[idx2].todense()
matrix2 = titles[idx1].todense()

print(matrix1)
[[ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]]

print(matrix2)
[[ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多