Broadcasting arrays
In a nutshell, NumPy tries to perform an operation even though the operands do not have the same shape. In this section, we will multiply an array and a scalar. The scalar is extended to the shape of an array operand, and then the multiplication is performed. We will download an audio file and make a new version that is quieter:
First, read the WAV file. We will use standard Python code to download an audio file of Austin Powers saying "Smashing, baby". SciPy has a
wavfile
module that allows you to load sound data or generate WAV files. If SciPy is installed, then we should already have this module. Theread()
function returns a data array and sample rate. In this example, we only care about the data.sample_rate, data = scipy.io.wavfile.read(WAV_FILE)
Plot the original WAV data with Matplotlib. Give the subplot the title,
Original
, as shown in the following lines of code:plt.subplot(2, 1, 1) plt.title("Original") plt.plot(data)
Now create a new array. We will use NumPy to...