def count_matrix(matrix, array_data): for row in range(1, len(matrix)): # 从下标1开始遍历矩阵的行元素 for col in range(1, len(matrix)): # 从下标1开始遍历矩阵列元素 if matrix[0][row] == matrix[col][0]: # 取出的行关键词和列关键词相同,则其对应的共现次数为0,即矩阵对角线为0 matrix[col][row] = 0 else: counter = 0 # 初始化计数器 for ech in array_data: # 遍历格式化后的原始数据,让取出的行关键词和取出的列关键词进行组合, # 再放到每条原始数据中查询 if matrix[0][row] in ech and matrix[col][0] in ech: counter += 1 else: continue matrix[col][row] = counter return matrix NXdata = pd.DataFrame(count_matrix(University_matrix, University_array)) print(NXdata)不出结果
时间: 2024-01-13 19:02:18 浏览: 68
根据你提供的代码,我注意到一个可能导致没有结果输出的问题。在"count_matrix"函数的最后,你在循环结束后立即返回了矩阵。这意味着只会执行一次循环迭代,而不是遍历整个矩阵。
为了解决这个问题,你可以将返回语句放在循环之外,以确保所有的迭代都完成后再返回矩阵。请尝试将返回语句缩进到合适的位置,如下所示:
```python
def count_matrix(matrix, array_data):
for row in range(1, len(matrix)):
# 从下标1开始遍历矩阵的行元素
for col in range(1, len(matrix)):
# 从下标1开始遍历矩阵列元素
if matrix[0][row] == matrix[col][0]:
# 取出的行关键词和列关键词相同,则其对应的共现次数为0,即矩阵对角线为0
matrix[col][row] = 0
else:
counter = 0 # 初始化计数器
for ech in array_data:
# 遍历格式化后的原始数据,让取出的行关键词和取出的列关键词进行组合,
# 再放到每条原始数据中查询
if matrix[0][row] in ech and matrix[col][0] in ech:
counter += 1
else:
continue
matrix[col][row] = counter
return matrix
NXdata = pd.DataFrame(count_matrix(University_matrix, University_array))
print(NXdata)
```
通过将返回语句缩进到合适的位置,循环将完整地遍历整个矩阵,并计算共现次数。然后,将共现矩阵转换为数据帧并打印输出。
请尝试修改代码并运行,看看是否能够得到正确的结果。如果还有其他问题,请随时提问。
阅读全文