用numba对numpy-array进行周期性条件的切分。

问题描述 投票:0回答:1

我有一个在fframe中使用周期性边界条件添加内核的代码。

我根据这个帖子实现了周期性边界条件在周期性条件下对numpy数组进行分片。.

在numba上使用@jit包装器可以工作,但我没有得到任何加速。

我得到了这个错误。

TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Invalid use of Function(<built-in function setitem>) with argument(s) of 
type(s): (array(int64, 2d, C), tuple(array(int64, 2d, C) x 2), array(int32,2d, C))
 * parameterized
In definition 0:

All templates rejected with literals.

我如何在numba中解决这个周期性边界条件的索引切片问题?

"""

kernell = np.random.randint(0,10,(25,25))
fframe = np.random.randint(0,2,(77,77))

@njit
def init_test(frame, kernel, nn):
    dimXsp, dimYsp = kernel.shape
    dimXfr, dimYfr =frame.shape

    Xcoord = np.random.randint(0,dimXfr,nn)
    Ycoord = np.random.randint(0,dimYfr,nn)

    black = frame * 0

    for ff in prange(nn):
        sl0 = np.arange(Xcoord[ff]-dimXsp//2,Xcoord[ff]+dimXsp//2+1).reshape(-1,1)% dimXfr
        sl1 = np.arange(Ycoord[ff]-dimYsp//2,Ycoord[ff]+dimYsp//2+1).reshape(1,-1)% dimYfr

        black[sl0,sl1] = kernel

    return Xcoord, Ycoord, black

"""

谢谢:)

python numpy numba
1个回答
1
投票

有一个问题是,randint在numba中只接受2个参数。

https:/numba.pydata.orgnumba-docdevreferencenumpysupported.html。

© www.soinside.com 2019 - 2024. All rights reserved.