【问题标题】:How can I split my array to small arrays with 10 elements and shift 2 elements each time?如何将我的数组拆分为具有 10 个元素的小数组并每次移动 2 个元素?
【发布时间】:2019-01-11 09:50:50
【问题描述】:

我正在尝试将由 100 个元素组成的数组拆分为小数组,每个小数组有 10 个元素并计算它们的平均值(每个小数组的平均值)。我的问题是每次我想移动两个元素时,我在下一个代码中所做的是否正确?

Avg_Arr=[sum(Signal[k:k+10])/10 for k in range(0,N,2)]

更准确地说,如果我的数组如下

Array=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 .....]

我的第一个小数组是

My_Array1=[0 1 2 3 4 5 6 7 8 9]

==> 平均值为 (0+1+2+3+4+5+6+7+8+9)/10

而我的第二个一定是

My_Array2=[2 3 4 5 6 7 8 9 10 11]

【问题讨论】:

  • 我们不知道N 是什么,但我假设它是您的大数组的大小。为什么不for k in range(0, N - 10, 2)
  • 是的,为什么我需要添加-10?
  • range 的末尾,(假设 N=100)你会得到 k=..., 94, 96, 98。现在猜猜sum(Signal[k:k+10])/10 会计算什么到。 :-)

标签: python arrays split average


【解决方案1】:

这应该可行:

Signal=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
N = len(Signal)
Avg_Arr=[sum(Signal[k:k+10])/10 for k in range(0, N-10, 2)]
print(Avg_Arr)

请注意,您必须从末尾停止 10 个元素。否则,您不会平均超过 10 个元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-30
    • 2018-07-14
    • 2018-12-07
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    相关资源
    最近更新 更多