我想知道如何通过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)
答案 0 :(得分:0)
我遇到了同样的问题。但是我能提供的所有帮助是,您不能在装饰器中添加固定的数字(即->(n,2)不正确)。
对于这个问题,人们建议在输入中添加一个虚拟数组参数,并在输出中使用其长度,如此处所述: