можно ли вернуть массив с неизвестной формой выходного массива в функции guvectorize - PullRequest
0 голосов
/ 19 декабря 2018

Мне интересно, как я могу вернуть массив, если я не знаю его размер априори с помощью функции numba guvectorize.У меня в основном есть функция, которая получает вектор, и я возвращаю массив, размер которого изменится в функции.Моя проблема в том, что я не могу установить форму возвращаемого массива априори.

, например:

@guvectorize ([(float64[:],int64[:,:])], '(n),()->(n,2)')
def mysegmentation(Thresholding,StimSegments_time):
    count = 0
    for i in range(Thresholding.shape[0]-1):
        if Thresholding[i]==0. and Thresholding[i+1]==1.:
            StimSegments_time[count,0] = i 
        elif Thresholding[i]==1. and Thresholding[i+1]==0.:
            StimSegments_time[count,1] = i
            count += 1

У порогового значения может быть, скажем, (1000) элементов, а у StimSegments_time может быть (5,2) или (7, 2) или что-то еще (x, 2)

1 Ответ

0 голосов
/ 22 декабря 2018

У меня такая же проблема.Но все, что я могу помочь, это то, что вы не можете добавить фиксированное число в декоратор (т. Е. -> (n, 2) неверно).

Для этой проблемы люди предлагают добавить аргумент фиктивного массива ввведите и используйте его длину в выходных данных, как обсуждено здесь:

guvectorize не принимает новую переменную размера

...