
f(x_arr[:, None], y_arr)
将其应用到所有对的元素的两个1维阵列
x_arr和
y_arr。
例如,要以广播的方式编写示例函数,应将其编写为
def func(x, y): return np.cos(x) + np.sin(y) + x*y
因为
np.cos,
np.sin,
+,和
*跨阵列广播和量化。
至于它不广播?好吧,也许有人建议这样做
np.vectorize,但是您需要牢记很多棘手的事情,例如保持一致的输出dtype且没有副作用。如果您的函数不广播,我建议您仅使用列表推导:
np.array([[f(xval, yval) for yval in y_arr] for xval in x_arr])
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)