python - 迭代 numpy 数组的函数

标签 python numpy numpy-ndarray

我编写了一个简单的函数,它使用一些固定索引迭代 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 超出尺寸为 1 的轴 0 的范围

我做错了什么?

矩阵 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

然后抛出错误。

最佳答案

Vijkl 的形状为 (i, j, nA, nB),因此每个维度的最大限制为 (i-1, j-1, nA-1, nB-1)。您超出了前两个维度的最大范围。

关于python - 迭代 numpy 数组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50532385/

相关文章:

python - 使用两个参数按字母顺序对列表中的元组进行排序

python - 如何获取每行中 n 个最后/第一个 True 的 NumPy 数组

python - 如何创建具有自定义起点和步长值的矩形网格

numpy - 将 Fortran 数组转换为 numpy 数组

python - 如何从列表中提取相等元素的索引?

python-3.x - 计算两个数组列的成对总和

numpy:有限差分的差异和梯度之间的不同结果

python - matplotlib 使用什么 GUI 库?

python - 大量的 math.sqrt() 和 math.pow() 中的不准确性来自哪里?

python - Paramiko 会为失败的连接抛出什么错误/异常?