【发布时间】:2020-05-03 13:17:20
【问题描述】:
我想要一个生成邻接矩阵的算法。输入是一维列表,它输出一个二维列表,其中包含数字的变化情况。这就是我所拥有的:
n_clusters = 5
user = [4, 4, 4, 2, 3, 3, 0, 0, 0] # input array
movement_counts = [[0] * n_clusters] * n_clusters # row is from, col is to
prev_label = user[0]
for label in user[1:]:
if label != prev_label:
movement_counts[prev_label][label] += 1
prev_label = label
返回
[[1, 0, 1, 1, 0],
[1, 0, 1, 1, 0],
[1, 0, 1, 1, 0],
[1, 0, 1, 1, 0],
[1, 0, 1, 1, 0]]
但我希望它返回这个:
[[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 1, 0],
[1, 0, 0, 0, 0],
[0, 0, 1, 0, 0]]
为什么用数字而不是一个元素填充整列?
【问题讨论】:
-
您能否详细说明如何根据输入用户获取此输出?
标签: python arrays list adjacency-matrix