如何为 Scipy 的 csr_matrix 指定行名和列名?

How can I give row and column names to Scipy's csr_matrix?

我不知道这是否可能,这可能是一个幼稚的问题,但我怎样才能将 R 的 rownames()colnames() 的等价物设置为 scipy.sparse.csr.csr_matrix

我看到 my_matrix.dtype.names 在这里不起作用,我找不到任何 "index" 这种稀疏矩阵的等价...

此外,pandas.sparse.* 在这里不是一个选项,因为一些未解决的问题...

非常感谢您的帮助,

您必须单独维护名称,因为 scipy 的稀疏格式中的 none 支持命名索引。这可能看起来像:

foo = csr_matrix(...)
row_names = np.array(...)
col_names = np.array(...)

# index by name:
row_idx, = np.where(row_names == "my row")
col_idx, = np.where(col_names == "my col")
foo[row_idx, col_idx]