擅长:python、mysql、java
<p>在循环中使用<code>np.append</code>效率很低。List append更好,因为它可以在适当的位置工作。<code>np.append</code>是<code>np.concatenate</code>的一个cover函数,它为每个调用生成一个全新的数组(包含所有相关的复制)。你知道吗</p>
<pre><code>def wavegen(build):
alist = []
for i in build:
freq = i
eachnum = np.arange(duration * sps)
waveform = np.sin(2 * np.pi * eachnum * freq / sps)
waveform_quiet = waveform * 0.3
alist.append(waveform_integers * 32767)
final_array = np.array(alist) # 2d result
# or final_array = np.hstack(alist) # 1d
final_array = final_array.astype(np.int16) # change the dtype just once
return final_array
</code></pre>