【发布时间】:2021-01-06 19:02:36
【问题描述】:
我有一个形状为 (4, 30, 13, 7000) 的 numpy 数组。这是实验数据。前三个维度代表实验条件。最后一个维度表示前三个维度的每个组合的 7000 毫秒。所以数组中有1560个7000ms的列表。
我已经构建了一个滑动窗口平均函数,我在每 7000 毫秒列表上执行一次:
def windowed_mean(4D_list)
for trial in 4D_list:
for neuron in trial:
for timebin in neuron:
chunk = timebin #chunk equals every 7000ms timespan.
window_size = 250 #ms
i = 0
while i < len(chunk) - window_size + 1: #sliding window average
window = chunk[i : i + window_size] #generates window
window_average = sum(window) / window_size #takes window average
moving_average.append(window_average) #appends window average to #moving_average list
i += 25 #step size
stored_averages.append(window_average)
moving_average.clear()
print(len(stored_averages)) #this list contains the stored windowed averages in order
我的问题是,如何将原始数组的第四维(时间)替换为存储在stored_averages 中的新窗口均值?
理想情况下,我希望得到一个新的形状数组 4, 30, 13, 271, 271,因为这是我每 7000 毫秒试用获得的窗口数。
【问题讨论】:
-
请发布 MCVE。现在有一堆未定义的名字
-
271、271从哪里来?你的卷积不是二维的吗?
-
另外,你应该从你的函数中返回东西而不是打印它。否则你不能在其他任何地方使用它。