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)