我必须使用相当于sicpy的sparse.coo_matrix和sparse.csr_matrix在矩阵上操作。但是,我不能使用scipy(它与我想使用它的图像分析软件不兼容)。但是,我可以使用numpy。 有没有简单的方法来完成什么scipy.sparse.coo_matrix和scipy.sparse.csr_matrix做,只有numpy? 谢谢!是否有可能使用scipy建立coo和csr矩阵而不使用scipy?
0
A
回答
3
一个sparse.coo_matrix
的属性是:
dtype : dtype
Data type of the matrix
shape : 2-tuple
Shape of the matrix
ndim : int
Number of dimensions (this is always 2)
nnz
Number of nonzero elements
data
COO format data array of the matrix
row
COO format row index array of the matrix
col
COO format column index array of the matrix
的data
,row
,col
数组实质上是data
,i
,当与coo_matrix((data, (i, j)), [shape=(M, N)])
j
定义参数。 shape
也来自定义。 dtype
从data
阵列。 nzz
,因为第一个近似值是data
(不包含零和重复坐标)的长度。
因此很容易构建一个coo
类似的对象。同样,一个lil
矩阵有2个列表。并且dok
矩阵是字典(参见其.__class__.__mro__
)。
一个csr
矩阵的数据结构是一个比较晦涩:
data
CSR format data array of the matrix
indices
CSR format index array of the matrix
indptr
CSR format index pointer array of the matrix
它仍然有3个阵列。它们可以来自coo
阵列。但是,使用纯Python代码这样做不会像编译的scipy
函数那么快。
但是,这些类有很多功能,需要大量的工作才能复制。有些是纯Python,但关键部分是为了速度而编译的。特别重要的是csr_matrix
实现的数学运算,如矩阵乘法。
复制临时存储的数据结构是一回事;复制功能是另一回事。
相关问题
- 1. Scipy CSR稀疏矩阵实际上是COO?
- 2. Scipy处理大型COO矩阵
- 3. 是否可以将dtype的scipy CSR矩阵转换为NPY_FLOAT?
- 4. 使用广播与稀疏scipy矩阵
- 5. 使用scipy计算矩阵排名
- 6. SciPy稀疏CSR矩阵的快速切片和乘法
- 7. CSR SciPy的矩阵更新其值后不更新
- 8. 升级时无法兼容Scipy无法在SymPy矩阵上使用SciPy功能
- 9. 子矩阵SciPy的
- 10. Scipy稀疏 - 距离矩阵(Scikit或Scipy)
- 11. 对csr格式的scipy稀疏矩阵的行操作
- 12. 大NumPy的SciPy的CSR矩阵,行明智的操作
- 13. Scipy稀疏CSR矩阵到TensorFlow SparseTensor - 小批量梯度下降
- 14. 切片稀疏(scipy)矩阵
- 15. scipy稀疏矩阵分裂
- 16. scipy稀疏矩阵索引
- 17. 大矩阵的SciPy插值
- 18. scipy曲线适合矩阵
- 19. 构建大型scipy稀疏矩阵
- 20. 通过使用scipy/numpy在Python中添加2矩阵和乘法2矩阵
- 21. Scipy稀疏矩阵 - 不同实现的目的和用法
- 22. SciPy而不是GNU Octave
- 23. scipy ndimage.rotate不能使用np.nan值
- 24. Scipy稀疏矩阵到电源备用矩阵
- 25. Scipy稀疏:SciPy/NumPy更新后的奇异矩阵警告
- 26. 加载到现有的numpy密集矩阵稀疏scipy矩阵
- 27. 如何使用scipy编辑稀疏矩阵中的单元格?
- 28. Scipy稀疏矩阵分配只使用存储的元素
- 29. 使用SciPy/Numpy在Python中连接稀疏矩阵
- 30. 在scipy Python中使用稀疏矩阵进行计算