这是一个相对简单的操作,但在我的实际代码中重复了数百万次,如果可能的话,我希望提高其性能。
import numpy as np
# Initial data array
xx = np.random.uniform(0., 1., (3, 14, 1))
# Coefficients used to modify 'xx'
a, b, c = np.random.uniform(0., 1., 3)
# Operation on 'xx' to obtain the final array 'yy'
yy = xx[0] * a * b + xx[1] * b + xx[2] * c
最后一行是我想改进的。基本上,
xx
中的每个术语都乘以一个因子(由 a、b、c
系数给出),然后将所有术语相加,以给出具有形状为 (14, 1)
的最终 yy
数组,与初始 xx
数组的形状 (3, 14, 1)
不同。可以通过 numpy 广播来实现这个目标吗?