我必须减少数组的密度,方法是使用一个以100步为单位遍历的for循环,并将原始数组的值复制到一个新数组中:
soundDataHere是一个[7][22000]
dim数组,我希望cleanSoundData是一个[7][220]
dim数组
def reduceDensity(soundDataHere):
for i in range(numberOfFiles):
for j in range(0, soundDataHere[i].size-1, 100):
cleanSoundData.extend(soundDataHere[i][j])
我不知道如何在foor循环中使用append和extend函数来重新创建一个新的低密度数组。在
示例:[[1,2,3,4,5],[6,7,8,9,10]]
带有step = 2
应该在我的新cleanSoundData数组中返回[[1,3,5],[6,8,10]]
但只是像[1,3,5,6,8,10]
那样扩展它
假设数组}。在
soundData
是一个7 X 22000
保存您的数据。因此,创建一个大小为7 x 220
的新数组cleanSoundData
可以如下操作。甚至更广义的是它的2 x 1000
还是{希望这对你有用。在
也许您应该尝试创建两个不同的临时列表对象,在for循环之后将所需的元素“扩展”到每个元素中(即右侧和左侧的子列表)。然后“追加”这两个列表,而不是在cleanSoundData中扩展。在
使用Numpy和您的示例:
看起来您正在处理声音数据,因此我强烈建议您使用numpy模块,因为矢量化数组操作要比使用for循环处理Python对象快得多(在某些情况下,速度高达100倍)。在
Numpy模块是专门为这些类型的用例设计的,所以我鼓励您学习如何使用它。在
相关问题 更多 >
编程相关推荐