IndexError: invalid index to scalar variable in for loop

IndexError: invalid index to scalar variable in for loop

我有一个 array of array's named pdf of len(pdf) = 300

pdf[0]len(pdf[0]) = 300

的数组

我想做的是,取 sum of pdf[0][50:100] 并为 pdf[1][50:100] 重复相同的操作,依此类推直到 pdf[300][50:100]

我试过的是:

for i,a in enumerate(pdf):
    result.append(a[i][50:100].sum())

但是我得到了错误: IndexError: invalid index to scalar variable

如果您只需要构建一个简单的列表,那么 List Comprehension 就是您的朋友:

result = [i[50:100].sum() for i in pdf]

应该做。

在你的 for 循环中,

apdf[0], pdf[1]...
i0,1...

所以你引用的是 pdf[0][0][50:100], pdf[1][1][50:100]... 因此是 tracebck。

这意味着您还可以将循环更改为:

result = []
for a in (pdf):
    result.append(a[50:100].sum())

...但这就是列表解析的目的:)

for i,a in enumerate(pdf):
    result.append(a[i][50:100].sum())

a 实际上是 pdf[0]pdf[1] 等。所以你计算 pdf[0][0]pdf[1][1] 等的总和

如果您想要:pdf[0][50:100] 的总和,然后对 pdf[1][50:100] 重复同样的操作,依此类推,直到 pdf[300][50:100]

你可以做到

result = [a[50:100].sum() for a in pdf]