rkj*_*983 9 python multithreading numpy matrix pandas
我真的想知道如何在numpy/pandas上利用多核处理进行矩阵乘法.
我在想的是:
M = pd.DataFrame(...) # super high dimensional square matrix.
A = M.T.dot(M)
Run Code Online (Sandbox Code Playgroud)
由于产品数量众多,这需要大量的处理时间,我认为使用多线程进行巨大的矩阵乘法是很简单的.所以,我在谷歌搜索,但我找不到如何在numpy/pandas上做到这一点.我是否需要使用一些python内置线程库手动编写多线程代码?
在 NumPy 中,可以通过 BLAS(基本线性代数子例程)的多线程实现来实现多线程矩阵乘法。你需要:
dtype
offloat32
或float64
(并满足某些对齐限制;我建议使用 NumPy 1.7.1 或更高版本,其中这些限制已放宽)。有一些注意事项:
multiprocessing
,其中包括大多数使用 的应用程序joblib
。特别是,它们会挂起。原因是 GCC 中的错误(或缺乏功能)。补丁已提交,但尚未包含在主线源中。至于 Pandas:我不确定它是如何进行点积的。转换为 NumPy 数组并返回以确保确定。