使用函数给出的值初始化numpy数组的最快方法

fac*_*act 4 python numpy multidimensional-array

我主要感兴趣的是((d1,d2))numpy数组(矩阵)但这个问题对于具有更多轴的数组是有意义的.我有函数f(i,j),我想通过这个函数的一些操作初始化一个数组

A=np.empty((d1,d2))
for i in range(d1):
    for j in range(d2):
        A[i,j]=f(i,j)
Run Code Online (Sandbox Code Playgroud)

这是可读的和有效的,但我想知道是否有更快的方法,因为我的阵列A将非常大,我必须优化这一点.

Ale*_*ley 6

一种方法是使用np.fromfunction.您的代码可以替换为以下行:

np.fromfunction(f, shape=(d1, d2))
Run Code Online (Sandbox Code Playgroud)

这是根据NumPy函数实现的,因此for对于较大的数组,它应该比Python 循环快得多.