Numpy 向量化函数
Numpy vectorizing function
我有这个功能fs(i,j,dif
)。很容易通过做矢量化这个功能
vfunc = np.vectorize(fs)
问题是,我想为
计算此函数的输出
i=0, j=1,2,3,4,5, ...ysize-1
i=1, J=1,2,3,4,5, ...ysize-1
....
i=xsize-1, j=1,2,3,4,5 ... ysize-1
对于i
的一个值,vfunc(0, np.arange(ysize), 0) (dif=0)
没有问题
但我无法找到如何为 i
的所有值执行此操作。
我唯一能做到的方法是
vfunc([[0],[1],[2],...[xsize-1]], np.arange(ysize), 0)
这对于较大的 xsize 是不可行的。有办法吗?
我对你的问题的理解如下。您想知道如何用 xsize 表示列表 [[0],[1],[2],...[xsize-1]]
吗?列表理解为您完成这项工作。
[[0],[1],[2],...[xsize-1]]=[[i] for i in range(xsize)]
然后可以按如下方式调用向量化函数(对于示例函数fs
)
import numpy as np
xsize=10
ysize=15
def fs(i,j,dif):
return i+j
np.vectorize(fs)([[i] for i in range(xsize)],np.arange(ysize),0)
我有这个功能fs(i,j,dif
)。很容易通过做矢量化这个功能
vfunc = np.vectorize(fs)
问题是,我想为
i=0, j=1,2,3,4,5, ...ysize-1
i=1, J=1,2,3,4,5, ...ysize-1
....
i=xsize-1, j=1,2,3,4,5 ... ysize-1
对于i
的一个值,vfunc(0, np.arange(ysize), 0) (dif=0)
但我无法找到如何为 i
的所有值执行此操作。
我唯一能做到的方法是
vfunc([[0],[1],[2],...[xsize-1]], np.arange(ysize), 0)
这对于较大的 xsize 是不可行的。有办法吗?
我对你的问题的理解如下。您想知道如何用 xsize 表示列表 [[0],[1],[2],...[xsize-1]]
吗?列表理解为您完成这项工作。
[[0],[1],[2],...[xsize-1]]=[[i] for i in range(xsize)]
然后可以按如下方式调用向量化函数(对于示例函数fs
)
import numpy as np
xsize=10
ysize=15
def fs(i,j,dif):
return i+j
np.vectorize(fs)([[i] for i in range(xsize)],np.arange(ysize),0)