gpt4 book ai didi

python - Numpy "double"-广播 - 有可能吗?

转载 作者:行者123 更新时间:2023-12-01 02:36:26 24 4
gpt4 key购买 nike

是否可以使用“双”广播来删除以下代码中的循环?换句话说,要在整个时间数组 T 以及相同维度的数组 freqsphases 上进行广播。

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))

最佳答案

您可以通过添加新轴将 T reshape 为二维数组,这将在与一维数组相乘/相加时触发广播,然后再进行广播使用 numpy.sum 折叠此轴:

np.sum(np.cos(freqs * T[:,None] + phases), axis=1)
# add new axis remove it with sum
<小时/>

测试:

(np.sum(np.cos(freqs * T[:,None] + phases), axis=1) == signal).all()
# True

关于python - Numpy "double"-广播 - 有可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46165759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com