生成2D高斯的最快方法

时间:2018-04-24 10:05:45

标签: python numpy scipy numpy-broadcasting

我正在尝试使用昏暗的7x7生成非对称2D高斯,但我希望尽可能快地完成。我尝试过4种不同的方式:

<?php

if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}

if (isset($_POST['startRegex'])) {
    $startRegex = base64_decode(filter_input(INPUT_POST, "startRegex"));
}

echo $startRegex;  //Output: "d+-d+-d+Td+:d+:d++d+:d+sINFOs(d):sSTARTEsKundenimport"

我的计算机上使用%timeit的基准:

"d+-d+-d+Td+:d+:d++d+:d+sINFOs(d):sSTARTEsKundenimport"

我很惊讶最快的方法是使用完整网格的方法。此外,生成此完整网格不是问题,因为它将被重用于许多计算。有没有更快的方法来计算x=np.arange(7)[None].astype(np.float); y=x.T xx,yy=np.meshgrid(x,y) mx,my,sx,sy=3.0,4.0,1.0,2.0 #centre and width params gauss=np.exp(-(xx-mx)**2/sx-(yy-my)**2/sy) #full grid gauss=np.exp(-(x-mx)**2/sx-(y-my)**2/sy) #x and y vectors gauss=np.exp(-(y-my)**2/sy)*(np.exp(-(x-mx)**2/sx)) #multiplication gauss=np.exp(-(y-my)**2/sy).dot(np.exp(-(x-mx)**2/sx)) #dot product

0 个答案:

没有答案