gpt4 book ai didi

python - 使用 Coo-matrix 创建邻接矩阵的内存问题

转载 作者:行者123 更新时间:2023-12-01 08:59:12 25 4
gpt4 key购买 nike

嗨,我正在尝试从 CSV 生成一个尺寸约为 24,000 的邻接矩阵,其中两列显示基因对的组合,一列 1 表示当前的交互作用......我的目标是拥有它为正方形并用零填充不在两列中的组合

我正在使用以下 Python 脚本

import numpy as np
from scipy.sparse import coo_matrix

l, c, v = np.loadtxt("biogrid2.csv", dtype=(int), skiprows=0, delimiter=",").T[:3, :]
m =coo_matrix((l, (v-1, c-1)), shape=(v.max(), c.max()))

m.toarray()

运行一切正常,直到遇到以下错误似乎

File "/home/charlie/anaconda3/lib/python3.6/site-packages/scipy/sparse/base.py", line 1184, in _process_toarray_args
return np.zeros(self.shape, dtype=self.dtype, order=order)

MemoryError

关于如何绕过 Scipy 内存限制的任何想法

谢谢

最佳答案

您想要的很可能不是m.toarray,而是m.tocsr()csr 矩阵可以 native 执行简单的线性代数(例如 .dot() 和矩阵幂),例如,这是有效的:

m.tocsr()
random_walk_2 = m.dot(m)
random_walk_n = m ** n
# see https://stackoverflow.com/questions/28702416/matrix-power-for-sparse-matrix-in-python

协方差也应该是可以实现的,但是如果不知道您当前的流程是什么,我不确定具体的实现是什么。

编辑:要将输出转换回更简单的格式以读取到 csv,您可以通过使用 .tocoo() 返回到 coo 来跟进

m.tocoo()
out = np.c_[m.data, m.row, m.col].T
np.savetxt("foo.csv", out, delimiter=",")
# see https://stackoverflow.com/questions/6081008/dump-a-numpy-array-into-a-csv-file

关于python - 使用 Coo-matrix 创建邻接矩阵的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52586643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com