Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Dask沿_轴应用_误差,与Numpy比较_Python_Arrays_Numpy_Dask - Fatal编程技术网

Python Dask沿_轴应用_误差,与Numpy比较

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_

我试图将一个函数应用于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_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)