如何将带有标签的距离值存储到距离矩阵中?
How to store distance values with labels into a matrix of distances?
我正在尝试将所有给定文档之间的距离存储到距离矩阵中。
这是我的代码:
dists = [] #a matrix of distances
i=0
for row in self.matrix:
current_row = row
document_distances = []
# build list with possibilities for every document in labels
for label in self.labels:
document_distances.append((1 - self.row_distance(current_row, label), label))
dists[i] = document_distances #[(0.22529600444665132, 'Doc1'), (0.22952074233187614, 'Doc2'), (0.289625872768411, 'Doc3'), ...]
i += 1
print(dists)
但是在 运行 代码之后我得到以下错误:
IndexError: list assignment index out of range
任何人都可以告诉我应该更改什么以使我的代码正常工作吗?
而不是这样做:
dists[i] = document_distances
这样做:
dists.append(document_distances)
您的代码有一些非常奇怪的语句:您遍历 row
,然后将其分配给 current_row
,等等。此外,您还跟踪一些计数器。这些都不是必须的。
最好的方法可能是使用列表理解:
dists = [(1 - self.row_distance(row, label), label)
for row in self.matrix
for label in self.labels]
这将替换所有代码。
或者如果你真的想要过程代码,你可以使用append
:
dists = [] #a matrix of distances
for row in self.matrix:
document_distances = []
for label in self.labels:
document_distances.append((1 - self.row_distance(current_row, label), label))
dists<b>.append(</b>document_distances<b>)</b>
print(dists)
我正在尝试将所有给定文档之间的距离存储到距离矩阵中。
这是我的代码:
dists = [] #a matrix of distances
i=0
for row in self.matrix:
current_row = row
document_distances = []
# build list with possibilities for every document in labels
for label in self.labels:
document_distances.append((1 - self.row_distance(current_row, label), label))
dists[i] = document_distances #[(0.22529600444665132, 'Doc1'), (0.22952074233187614, 'Doc2'), (0.289625872768411, 'Doc3'), ...]
i += 1
print(dists)
但是在 运行 代码之后我得到以下错误:
IndexError: list assignment index out of range
任何人都可以告诉我应该更改什么以使我的代码正常工作吗?
而不是这样做:
dists[i] = document_distances
这样做:
dists.append(document_distances)
您的代码有一些非常奇怪的语句:您遍历 row
,然后将其分配给 current_row
,等等。此外,您还跟踪一些计数器。这些都不是必须的。
最好的方法可能是使用列表理解:
dists = [(1 - self.row_distance(row, label), label)
for row in self.matrix
for label in self.labels]
这将替换所有代码。
或者如果你真的想要过程代码,你可以使用append
:
dists = [] #a matrix of distances
for row in self.matrix:
document_distances = []
for label in self.labels:
document_distances.append((1 - self.row_distance(current_row, label), label))
dists<b>.append(</b>document_distances<b>)</b>
print(dists)