python - 非常大的矩阵向量积

标签 python python-3.x numpy vector matrix-multiplication

我有一个大的对称矩阵 A,维度为 (N, N)(N 大约是两千万),我肯定无法存储此矩阵(A 的 50% 分量为零)。

但是每个组件 A[i, j] 都是明确已知的:A[i, j] = f(i, j)。例如 A[i, j] = cos(i)*cos(j)

我需要将该矩阵与长度为 N 的向量相乘。在 64 核、128GB RAM 的机器上执行此操作的“可行”方法是什么?

最佳答案

如果您有办法即时计算矩阵的元素,则无需将整个矩阵存储在内存中。此外,结果向量的每个元素彼此独立,因此您可以根据需要运行任意数量的并行工作程序。

我能想到的唯一算法优化是考虑到 f(i, j) = cos(i)*cos(j) 是对称函数(f(i , j) = f(j, i)).但前提是这是您的真正职能。

同时检查 numpyCython在 Python 中进行更快的计算,因为纯 Python 对于这种工作可能有点慢。

关于python - 非常大的矩阵向量积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24078646/

相关文章:

python - ValueError : too many values to unpack (expected 1)?

python - 如何使用 Visual Studio Code 修复 python 中的 ModuleNotFoundError

Javascript 模块不可用模板不是从基本 Django 模板继承的

Python - 覆盖类变量的初始化

python - 为 kmeans 和 PCA 转换数据

python - 在 scikit 中使用高斯过程的拟合函数中出现类型错误

python - 返回 header 内容 - API 网关 + AWS Lambda

python - 正则表达式与值不匹配

python - 无法使用 set 剔除重复结果

python - 无法在 Gtk.TextView i Python 3 中对列进行排序