本文主要是介绍稀疏矩阵coo_matrix、csr_matrix,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
coo_matrix
内存占用比csr_matrix少,易手工构建
例如:
data即元素,row,col分别是稀疏矩阵中元素的坐标位置
>>> import numpy as np
>>> data = np.array([4,5,7,9])
>>> data
array([4, 5, 7, 9])
>>> row = np.array([0,3,1,0])
>>> row
array([0, 3, 1, 0])
>>> col = np.array([0,3,1,2])
>>> col
array([0, 3, 1, 2])
>>> import scipy.sparse
>>> coo = scipy.sparse.coo_matrix((data, (row, col)),shape=(4,4))
>>> coo
<4x4 sparse matrix of type '<class 'numpy.int32'>'with 4 stored elements in COOrdinate format>
>>> coo.toarray()
array([[4, 0, 9, 0],[0, 7, 0, 0],[0, 0, 0, 0],[0, 0, 0, 5]])
>>> coo.tocsr().toarray() # 转为csr_matrix
array([[4, 0, 9, 0],[0, 7, 0, 0],[0, 0, 0, 0],[0, 0, 0, 5]], dtype=int32)
>>>
coo_matrix定以后shape就不可更改,但是data,row,col可以更改。
合并稀疏矩阵可以使用vstack()和hstack()。
这篇关于稀疏矩阵coo_matrix、csr_matrix的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!