【发布时间】:2018-11-05 00:59:31
【问题描述】:
我编写了一个简单的函数,它遍历具有一些固定索引的 numpy 数组。
def compute_V(i,j,nA, nB,V):
Vijkl = np.zeros((i,j,nA,nB))
for k in range(nA):
for l in range(nB):
Vijkl[i,j,k,l] = V[i,j,k,l] + 3
return Vijkl
我收到以下错误: IndexError:索引 1 超出轴 0 的范围,大小为 1
我做错了什么?
矩阵 V 有一个形状:(1, 2, 1, 2) 并且看起来:
[[[[-0.00009 -0.00001]]
[[-0.00001 -0.00001]]]]
i = 0, j = 0, nA = 1, nB = 2
看起来循环经过了一次迭代:
i,j,k,l,V: 0 0 0 0 -9.39073120245e-05
然后抛出错误。
【问题讨论】:
-
IndexError 表示您正在尝试获取列表中不存在的元素。例如,假设您尝试获取列表的第四个元素,即使该列表只有三个元素。
-
V的形状是什么?可能是与 nA 或 nB 不匹配?
-
V 为 (1, 2, 1, 2), nA = 1, nB =2
-
与您的问题并不真正相关,但如果您所做的只是在某些元素中填写 3 个,则可以使用更优雅的方法。
-
@anishtain4 这只是更复杂任务的示例。
标签: python numpy numpy-ndarray