比python更快(比scipy)计算Chi Square CDF

时间:2013-10-03 20:50:47

标签: performance python-2.7 numpy scipy

我有一个大的标准正态分布向量(len = 125,000,000)堆积在一个名为vec的[5,125000000] numpy数组中。我继续做:

chisqr = sum(multiply(vec,vec)/var_vec,0)

然后使用scipy获取CDF并执行:

one_minus_cdf = 1-stats.chi2.cdf(chisqr,[5])

除了最后一行需要花费大量时间才能完成之外。任何人都可以帮我设计一种方法来加快速度吗?提前谢谢。

我对python不是很有经验所以请耐心等待。我使用非官方的Windows二进制文件安装了numpy和scipy(是的,我很抱歉;我在Windows上)。我认为默认numpy是针对ATLAS编译的?如果我下载它,我不知道如何使用MKL。我知道我可以获得30天的试用期。我只是想知道在使用像MKL这样的东西之前是否还有其他的建议或技巧(顺便说一句,最简单的方法是什么?)。

这是一个可重复的例子:

import numpy as np
from scipy import stats

vec = np.random.rand(5,12500000)

var_mad = np.tile(np.mat(1).T,(1,12500000))    
chisqr = sum(np.multiply(vec,vec)/var_mad,0)
one_minus_cdf = 1-stats.chi2.cdf(chisqr,[5])

0 个答案:

没有答案