Python Dask沿_轴应用_误差,与Numpy比较
我试图将一个函数应用于Dask数组,虽然同一个函数适用于numpy数组,但它不适用于Dask数组。 以下是一个例子:Python Dask沿_轴应用_误差,与Numpy比较,python,arrays,numpy,dask,Python,Arrays,Numpy,Dask,我试图将一个函数应用于Dask数组,虽然同一个函数适用于numpy数组,但它不适用于Dask数组。 以下是一个例子: import dask.array as da w = numpy.array([[6,7,8],[9,10,11]]) q = numpy.array([[1,2,3],[4,5,6]]) s = numpy.stack([w,q]) def func(arr): t, y = arr[0], arr[1] return arr[0] + arr[1] s_
import dask.array as da
w = numpy.array([[6,7,8],[9,10,11]])
q = numpy.array([[1,2,3],[4,5,6]])
s = numpy.stack([w,q])
def func(arr):
t, y = arr[0], arr[1]
return arr[0] + arr[1]
s_dask = da.from_array(s)
在numpy数组上运行func可以正常工作,而在Dask数组上运行func会引发错误:索引器错误:索引1超出大小为1的轴0的范围“
>>s
数组([[6,7,8],
[ 9, 10, 11]],
[[ 1, 2, 3],
[ 4, 5, 6]]])
>>>numpy.沿_轴应用_(func,0,s)
数组([[7,9,11],
[13, 15, 17]])
>>>da.沿_轴应用_(func,0,s_-dask)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
da.沿_轴应用_(func,0,s_-dask)
文件“.Python37\lib\site packages\dask\array\routines.py”,第383行,沿_轴应用_
test_result=np.array(func1d(test_数据,*args,**kwargs))
文件“”,第2行,在func中
t、 y=a[0],a[1]
索引器:索引1超出大小为1的轴0的界限
我不确定我在这里做错了什么Dask array试图找出输出数组的数据类型。为此,它通过函数发送一个小的空数组。该小的空数组失败,因为函数假定输入的大小至少为2 通过显式提供数据类型,可以省去Dask的麻烦
da.apply_along_axis(func, 0, s_dask, dtype=s_dask.dtype)
谢谢,不过我还需要提供它工作所需的形状。
da.apply_沿_轴(func,0,s_-dask,dtype=s_-dask.dtype,shape=s_-dask.shape)
da.apply_along_axis(func, 0, s_dask, dtype=s_dask.dtype)