我使用以下方式初始化一个空的稀疏矩阵:
S = scipy.sparse.lil_matrix((n,n),dtype=int)
正如预期的那样,print S
不会显示任何内容,因为没有分配任何内容。
但是如果我测试:
print S[0,0]==0
我收到了true
。
是否有一种方法可以测试值是否已设置?例如类似于ifempty
的方式?
我使用以下方式初始化一个空的稀疏矩阵:
S = scipy.sparse.lil_matrix((n,n),dtype=int)
正如预期的那样,print S
不会显示任何内容,因为没有分配任何内容。
但是如果我测试:
print S[0,0]==0
我收到了true
。
是否有一种方法可以测试值是否已设置?例如类似于ifempty
的方式?
def get_items(s):
s_coo = s.tocoo()
return set(zip(s_coo.row, s_coo.col))
演示:
>>> n = 100
>>> s = scipy.sparse.lil_matrix((n,n),dtype=int)
>>> s[10, 12] = 1
>>> (10, 12) in get_items(s)
True
>>> s = scipy.sparse.csr_matrix((n,n),dtype=int)
>>> s[12, 14] = 0
>>> (12, 14) in get_items(s)
True
s[12, 14] = 0
这样的代码行中。据我所知,这不是一个经过测试的API功能。 - joeln
S [0,0] = 0
,并调用print S
,则会返回值:(0, 0) 0
。因此,某种方式可以区分未分配和0。 - Markus