我使用下面的函数将表单(row,col):value的字典转换为csr矩阵。 row和col是int,value是float。
def convert(term_dict):
# Create the appropriate format for the COO format.
data = []
row = []
col = []
for k, v in term_dict.items():
r = int(k[0][1:])
c = int(k[1][1:])
data.append(v)
row.append(r-1)
col.append(c-1)
# Create the COO-matrix
coo = coo_matrix((data, (row, col)))
# Let Scipy convert COO to CSR format and return
return csr_matrix(coo)
来自here的。我得到了
r = int(k [0] [1:])TypeError:' int'对象没有属性 '的的GetItem '
答案 0 :(得分:0)
真的不舒服你在这里尝试的东西:
for k, v in term_dict.items():
r = int(k[0][1:])
c = int(k[1][1:])
如果你有一个词典,比如说
d = dict()
d[(1,2)] = 2.3232
d[(2,2)] = 12.3232
for k, v in d.items():
#here k is (1,2)
#k[0] == 1
#k[0][1:] == 1[1:]
您正在尝试从int类型中切片。你的预期结果是什么?
试
for k, v in term_dict.items():
r = int(k[0])
c = int(k[1])
代替