小编cur*_*ris的帖子

正确使用 pyfftw 来加速 numpy

我正试图从 Matlab 飞跃到 numpy,但我迫切需要我的 fft 的速度。现在我知道 pyfftw,但我不知道我是否正确使用它。我的方法是这样的

import numpy as np
import pyfftw
import timeit

pyfftw.interfaces.cache.enable()

def wrapper(func, *args):
    def wrapped():
        return func(*args)
    return wrapped

def my_fft(v):
    global a
    global fft_object
    a[:] = v
    return fft_object()

def init_cond(X):
    return my_fft(2.*np.cosh(X)**(-2))

def init_cond_py(X):
    return np.fft.fft(2.*np.cosh(X)**(-2))

K = 2**16
Llx = 10.
KT = 2*K
dx = Llx/np.float64(K)
X = np.arange(-Llx,Llx,dx)

global a
global b
global fft_object
a = pyfftw.n_byte_align_empty(KT, 16, 'complex128')
b = pyfftw.n_byte_align_empty(KT, 16, 'complex128')
fft_object = pyfftw.FFTW(a,b)

wrapped = …
Run Code Online (Sandbox Code Playgroud)

numpy pyfftw

2
推荐指数
1
解决办法
3896
查看次数

标签 统计

numpy ×1

pyfftw ×1