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 循环中,
a
是 pdf[0], pdf[1]...
i
是 0,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]
我有一个 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 循环中,
a
是 pdf[0], pdf[1]...
i
是 0,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]