Python Numpy矢量化函数

Python Numpy矢量化函数,python,python-3.x,numpy,vectorization,Python,Python 3.x,Numpy,Vectorization,我有这个函数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的所有值执行此操作 我唯一能

我有这个函数
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]表示范围内的i(xsize)]
然后可以按如下方式调用矢量化函数(例如函数
fs


最后一个
i
np.arange(xsize)[:,None]
,一个(xsjze,1)形状数组。很酷,然后一个重塑(xsize*ysize)就是我想要的。我强烈建议你看看。
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)