Traceback (most recent call last): File "D:\PyCharm\Python_for_networkkkk\xinxinxinxin.py", line 90, in <module> University_df3=get_adjacency_matrix(University_list,University_df2) File "D:\PyCharm\Python_for_networkkkk\xinxinxinxin.py", line 83, in get_adjacency_matrix adjacency_mat = [[0 for val in range(len(node_list))] for val in range(len(node_list))] File "D:\PyCharm\Python_for_networkkkk\xinxinxinxin.py", line 83, in <listcomp> adjacency_mat = [[0 for val in range(len(node_list))] for val in range(len(node_list))] File "D:\PyCharm\Python_for_networkkkk\xinxinxinxin.py", line 83, in <listcomp> adjacency_mat = [[0 for val in range(len(node_list))] for val in range(len(node_list))] MemoryError
时间: 2024-01-26 22:04:37 浏览: 168
Mac下anaconda中Spyder打开报错Traceback(most recent call last)…问题
5星 · 资源好评率100%
这个错误提示"MemoryError"表示程序尝试使用比系统可用内存更多的内存,导致内存不足。这通常发生在尝试创建一个非常大的数据结构时,如你的代码中的二维数组`adjacency_mat`。
由于你的代码中使用了两个嵌套的列表推导式来创建一个二维数组,当节点列表`node_list`很大时,会导致内存不足。解决这个问题的一种方法是使用稀疏矩阵来代替稠密矩阵。
你可以尝试使用`scipy`库中的`coo_matrix`或`csr_matrix`来创建稀疏矩阵。这些稀疏矩阵只存储非零元素,可以大大减少内存占用。
以下是使用`coo_matrix`来创建稀疏矩阵的示例:
```python
from scipy.sparse import coo_matrix
adjacency_mat = coo_matrix((len(node_list), len(node_list)), dtype=int)
```
注意,你需要导入`scipy.sparse`库来使用稀疏矩阵。在上述示例中,我们创建了一个大小为`(len(node_list), len(node_list))`的零矩阵。
你可以根据具体需要选择使用`coo_matrix`还是`csr_matrix`。然后,你可以根据数据的非零元素来填充稀疏矩阵。
确保你已经安装了`scipy`库,并在代码中导入所需的模块。如果内存问题仍然存在,你可能需要考虑优化算法或使用更大容量的硬件。
阅读全文