我有一个名为M
的10000x10000
矩阵,每列都有1
和0
。我试图计算每一列中1
的数量,然后将该列中的每个元素除以此数字。
这是我的尝试:
outbound_links = M[M == 1].count()
mat = [[1] * 10000] * 10000
n = 10000
#len(mat)
# for each column
for col_index in range(0, n):
# count the number of 1s
for row_index in range(0, n):
if M[row_index][col_index] == 1:
mat[row_index][col_index] = 1 / outbound_links[col_index]
else:
mat[row_index][col_index] = 0
print(mat)
但是代码无法运行,因为矩阵似乎太大了。我想知道还有哪些其他的选择?
mat = [[1] * 10000] * 10000
将创建一个包含对同一列表的10k个引用的“矩阵”。您必须使用[[1] * 10000 for _ in range(10000)]
,或者更好地使用numpy
。 - tobias_k