在下面的代码中,是否可以使用“双重”广播来删除循环?换句话说,在整个时间数组T
以及相同维数的数组freqs
和phases
上广播。你知道吗
freqs = np.arange(100)
phases = np.random.randn(len(freqs))
T = np.arange(0, 500)
signal = np.zeros(len(T))
for i in xrange(len(signal)):
signal[i] = np.sum(np.cos(freqs*T[i] + phases))
Tags:
通过向
T
添加新轴,可以将T
重塑为2d数组,这将在用1d数组乘以/添加时触发广播,然后使用numpy.sum
折叠此轴:测试:
你知道吗
我刚想到一个主意(但计算起来可能很贵?)将参数构造为矩阵:
相关问题 更多 >
编程相关推荐