python - 有效地将大量 SciPy 稀疏矩阵条目设置为零

标签 python numpy matrix scipy sparse-matrix

我需要从 SciPy 稀疏矩阵中删除大量条目。 目前我将矩阵转换为 DOK 格式并单独分配 每项为0。

m = m.todok()
for i, j in pruneme:
  m[i,j] = 0

这非常慢。

有没有更快的方法?

最佳答案

您可以有效地设置 CSR 稀疏数组的元素,只要您不添加新的非零值,只需为数组添加元组下标即可:

i, j = zip(*pruneme) # assuming that pruneme is a python list
m[i, j] = 0.
m.eliminate_zeros()

这应该比构造两个数组快得多。

关于python - 有效地将大量 SciPy 稀疏矩阵条目设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35864149/

相关文章:

python-3.x - 按降序对两列最频繁的组合进行排序

Python:在numpy数组中左右移动所有大于0的元素

python - 使类可转换为 ndarray

python - 如何在 2 个不同的 app.route 中使用 Flask Flash 消息

python - 如何使用 pySerial 在 python 中配置 tty?

python - 如何仅绘制日期时间数组的第一个毫秒数字

matlab - 如何判断矩阵是否奇异?

c++ - 如何在 CUDA 中分别获取复数矩阵的实部和虚部?

c++ - C/C++ 系统可移植方式更改最大打开文件数

javascript - 如何使用selenium和scrapy来爬取某个网页?