NameError:未定义名称“ ShiftArr”

时间:2020-06-09 18:29:04

标签: python jupyter-notebook

# indices to calculate pair-wise products (H, V, D1, D2)
shifts = [[0,1], [1,0], [1,1], [-1,1]]
# calculate pairwise components in each orientation
for itr_shift in range(1, len(shifts) + 1):
    OrigArr = structdis
    reqshift = shifts[itr_shift-1] # shifting index
    for i in range(structdis.shape[0]):
        for j in range(structdis.shape[1]):
            if(i + reqshift[0] >= 0 and i + reqshift[0] < structdis.shape[0] \
               and j + reqshift[1] >= 0 and j  + reqshift[1] < structdis.shape[1]):
                ShiftArr[i, j] = OrigArr[i + reqshift[0], j + reqshift[1]]
            else:
                ShiftArr[i, j] = 0       

如果我尝试运行代码,则会出现以下错误:

NameError:未定义名称'ShiftArr'

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

从外观上看,您在使用ShiftArr之前尚未定义它。这就是错误的意思。

似乎您是在嵌套循环中首先使用ShiftArr,但之前从未说过ShiftArr = ...

如果在第一个for循环之前添加ShiftArr = [],这应该可以解决您的问题。由于变量名不是超级有用的信息,因此很难理解您要执行的操作。这可能在干燥修复代码错误时会有所帮助。