python - 给定一个类型为 `scipy.sparse.coo_matrix` 的矩阵,如何确定每一行的索引和最大值?

标签 python matrix scipy max sparse-matrix

给定一个形状为 1.000.000 x 70.000scipy.sparse.coo_matrix 类型的稀疏矩阵R 我想通了

row_maximum = max(R.getrow(i).data)

会给我第 i 行的最大值。

我现在需要的是值row_maximum对应的索引。

有什么想法可以实现吗?

提前感谢您的任何建议!

最佳答案

getrow(i)返回一个 1 x n CSR 矩阵,它有一个 indices给出 data 中相应值的行索引的属性属性。 (我们知道形状是 1 x n,所以我们不必处理 indptr 属性。)所以这会起作用:

row = R.getrow(i)
max_index = row.indices[row.data.argmax()] if row.nnz else 0

我们必须处理 row.nnz 的情况单独为 0,因为 row.data.argmax()如果 row.data 将引发异常是一个空数组。

关于python - 给定一个类型为 `scipy.sparse.coo_matrix` 的矩阵,如何确定每一行的索引和最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9268710/

相关文章:

python - 你如何干净地将列名传递给游标,Python/SQLite?

python - 将时区添加到Python的当前时间戳中

python - 使用 Networkx,如何将 graphml 和其他格式写入字符串而不是文件?

c++ - 在 C/C++ 中分配和访问矩阵

c - 计算矩阵乘法时出现段错误(核心转储)错误

Python/Numpy 查找长度变量跨度

python - 列表列表更改意外地反射(reflect)在子列表中

c# - 计算矩阵对角线上的数字总和

python - 将 LIL 稀疏矩阵的所有元素设置为零,同时保留其稀疏性

python - 如何有效地加载稀疏矩阵?