我有这个函数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)