如何使用numba的“ guvectorize”修饰符在同一函数中更改两个数组?

时间:2019-05-05 22:55:42

标签: numba

我正在使用numba的@guvectorize更改两个不同的数组。代码是:

@guvectorize([(int64[:], int64[:], int64[:], int64[:])], '(n),(n)->(n),(n)', target= 'parallel')

def g(x, y, res, res_two):
    res = x
    for i in range(x.shape[0]-1):
        var = np.random.poisson((2),1)[0]
        res_two[i] = var
        res[i+1] = res[i] + res_two[i]
    print("res[i+1] is", res[i+1], "for x[i] is", x[i])    

q = (np.arange(5)) * 0
q[0] = 5
r = (np.arange(5)) * 0

g(q,r)
print("q is", q)
print("r is", r)

打印出的结果是:

enter image description here

可以看到,q在变化,而r却没有变化。

我该怎么做才能使用guvectorize输入两个数组并更改这两个数组?

0 个答案:

没有答案