我有一个列表called months: array([ 1, 1, 1, ..., 12, 12, 12]),
,有1〜12个月
还有一个名为best_labels :array([8, 0, 0, ..., 6, 0, 0],
dtype = int32)`的列表,它具有10个簇(0〜9)
两者的长度相同,为72915。
现在,我想创建一个名为C[i-1][j]
的numpy数组,以计算在第i个月中发布的集群j的数量。
结果应如下所示:12行(月)* 10列(集群), 例如,C [0] [0] = 5251,这意味着在第1个月中发生了5251个群集1。
array([[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0],
[5251, 2, 226, 0, 0, 0, 163, 0, 147, 0]])
我已经这样做了,但是它有 TypeError:只有整数标量数组可以转换为标量索引
C = np.zeros((12,best_k),dtype=np.int)
A = list(zip(months,best_labels))
for i in range(1,13):
count =0
for j in range(1,11):
if C[i]==A[months] and C[j]==A[best_labels]:
C[i][j] = count+1
答案 0 :(得分:0)
我认为您的循环应该是这样
C = np.zeros((12,best_k),dtype=np.int)
A = list(zip(months,best_labels))
for month, label in A:
C[month-1][label] += 1