如何解决如何在不更改初始数组的情况下用零填充数组列?
我正在尝试从 44100 个值的 2 列数组中获取 2 个单独的数组。其中一个数组的右列应为 0,其他值应保持不变,而另一个数组的左列则相反。到目前为止,我有以下代码:
def tone(f,sf,duration): # frequency,sampling frequency and duration
sample_times = np.arange(0,duration,1/sf)
max_amplitude = 2**15 - 1
cos_wave = np.cos(2 * np.pi * f * sample_times) * max_amplitude
return cos_wave.astype("int16") # returns an array of dtype =int16
sf = 44100
f = random.randrange (20,18000)
duration = 1
cos_wave = tone(f,duration)
print(cos_wave.dtype)
# Generate stereo sound by putting it in 2 columns
both_channels = cos_wave.reshape((int(sf/2),2))
both_channels = both_channels.astype ('int16')
print (both_channels)
`# Fill one column with zeros to get mono sound for each channel`
copy_both_channels = np.copy (both_channels)
print (copy_both_channels)
both_channels[:,0] = 0 # 1st column filled with zeros
问题是我在用 0 填充其中一列时修改了初始数组 (both_channels)。我尝试使用 np.copy(arr)
函数,但这也无济于事,因为它没有用 0 填充列。
谁能告诉我实现这一目标的方法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。