交错两个 numpy 1D 数组以实现立体声音频输出

Dan*_*jel 5 python arrays numpy

我有两个numpy float32 数组

a = numpy.array(c)
b = numpy.array(d)
Run Code Online (Sandbox Code Playgroud)

这两个代表两个单声道音频流。

我想使用 scipy 的wavwrite将它们写入立体声 WAV 文件:

scipy.io.wavfile.write(wav_name, sampling_rate, samples)
Run Code Online (Sandbox Code Playgroud)

如何将两个数组连接成一个samples二维数组,并将它们交错以便在输出时获得正确的立体声 WAV?

Han*_*rén 4

只需确保ab是列向量,并将它们水平堆叠:

 result = np.hstack((a.reshape(-1, 1), b.reshape(-1,1)))
Run Code Online (Sandbox Code Playgroud)

如果您知道数组是一维的,另一种选择是垂直堆叠并转置:

result = np.vstack((a, b)).T
Run Code Online (Sandbox Code Playgroud)