python-2.7 - 用 1 填充 Scipy 稀疏矩阵

标签 python-2.7 scipy sparse-matrix

我有一个 scipy 稀疏矩阵,我想用一个替换值:

from scipy import sparse
import numpy as np

data = np.array([[1, 2, 3, 0, 5], [6, 0, 0, 9, 10], [0, 0, 0, 0, 15]])

print sparse.coo_matrix(data)

我看到 numpy 有一个 ones_like() 函数,但这并没有解决我的问题。

输出应该是这样的:

(0, 0)        1
(0, 1)        1
(0, 2)        1
(0, 4)        1
(1, 0)        1
(1, 3)        1
(1, 4)        1
(2, 4)        1

最佳答案

最简单的方法是直接操作稀疏矩阵表示。这样做的方式将取决于您选择的代表;对于 COO 格式,它是

data.data[:] = 1

请注意,COO 格式有一个奇怪的功能,它允许重复条目。如果 COO 矩阵在 (1, 1) 位置有两个条目,上面的代码会将这两个条目都设置为 1,从而产生单个条目 2 如果将矩阵转换为另一种格式。如果您想要单个条目 1,您可以先规范化重复项

data.sum_duplicates()
data.data[:] = 1

关于python-2.7 - 用 1 填充 Scipy 稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37975324/

相关文章:

python - 函数参数的异常处理

python - Scipy/Pylab 错误.. 预计在 : dynamic lookup?

python - 没有 SciPy 的 NumPy 数组的 3D 插值

c++ - Eigen 程序中的性能瓶颈

读取文件时Python编码问题

python - SQLAlchemy 中使用 keys() 的列名顺序

linux - 在 Ubuntu 上使用 python 2.7 和 pyglet 的 Mp3 播放器

python - 找出两个(不谐波)波之间的相位差

python - 用于小特征值的 Scipy 稀疏 eigsh()

performance - Pandas 或 scipy : looking for performance 中的 groupby.sum() 稀疏矩阵