scipy.sparse.csr_matrix
有data
,indices
和indptr
属性。
dtype
和indices
的默认indptr
是什么?
对于numpy
,默认索引类型为numpy.intp
,但与dtype
的{{1}}的{{1}}不匹配。
对于我的笔记本电脑:
indices
结果:
scipy.sparse.csr_matrix
答案 0 :(得分:2)
sparse.compressed._cs_matrix
__init__
已
idx_dtype = get_index_dtype(maxval=max(M,N))
self.data = np.zeros(0, getdtype(dtype, default=float))
self.indices = np.zeros(0, idx_dtype)
self.indptr = np.zeros(self._swap((M,N))[0] + 1, dtype=idx_dtype)
sparse.compressed.get_index_dtype
在np.int32
和np.int64
之间选择,具体取决于矩阵的形状。如果太大而无法使用32
进行索引,则会使用64
。但请查看该功能以获取详细信息。
In [789]: np.iinfo(np.int32).max
Out[789]: 2147483647
In [790]: a=sparse.csr_matrix((1,2147483646))
In [791]: a
Out[791]:
<1x2147483646 sparse matrix of type '<class 'numpy.float64'>'
with 0 stored elements in Compressed Sparse Row format>
In [792]: a.indices.dtype
Out[792]: dtype('int32')
In [793]: a=sparse.csr_matrix((1,2147483648))
In [794]: a.indices.dtype
Out[794]: dtype('int64')