Как мне использовать декоратор "guvectorize" в numba, чтобы изменить два массива в одной и той же функции? - PullRequest
0 голосов
/ 06 мая 2019

Я использую @guvectorize от numba для изменения двух разных массивов.Код:

@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 меняется,но г нет.

Что я должен сделать, чтобы использовать guvectorize для ввода двух массивов и изменения этих двух массивов?

...