Python 函数的数组,其中两个变量在一个变量上求平均值,不带for循环

Python 函数的数组,其中两个变量在一个变量上求平均值,不带for循环,python,numpy,for-loop,optimization,Python,Numpy,For Loop,Optimization,我有两个numpy数组t和f。现在,我想根据一些数学公式创建第三个数组N,它包含两个参数(t和f)。我希望它的形状与f相同,通过对所有t上每个f的N值求平均值,如下所示 import numpy as np t = np.linspace(0,4,100) f = np.linspace(10,15,50) N = np.zeros(len(f)) for i in range(len(f)): eq = np.sin(t)*np.exp(t*f[i]) N[i] = np.m

我有两个numpy数组t和f。现在,我想根据一些数学公式创建第三个数组N,它包含两个参数(t和f)。我希望它的形状与f相同,通过对所有t上每个f的N值求平均值,如下所示

import numpy as np

t = np.linspace(0,4,100)
f = np.linspace(10,15,50)

N = np.zeros(len(f))

for i in range(len(f)):
   eq = np.sin(t)*np.exp(t*f[i])
   N[i] = np.mean(eq)

正如我所演示的,这可以通过for循环轻松完成。然而,我想通过删除这个for循环来提高计算时间。有没有有效的方法可以做到这一点?

是的。如果进行一点矢量化,可以跳过循环并在单行中执行操作

t,f = t.reshape(-1,1), f = f.reshape(-1,1) #Reshape for matrix multiplication
N = (np.sin(t)*np.exp(t*f.T)).mean(axis = 0)