为什么这if语句给我一个ValueError?

时间:2019-05-27 09:03:26

标签: python numpy valueerror

我试图遍历一个numpy的2d数组,并检查值1,2和3在数组中出现的位置,但是我收到一个值错误,因为numpy指出其模棱两可。解决此问题的最佳方法是什么?

for x in range(row):
        for y in range(row):
            if grid[x,y] == 1:
                pygame.draw.rect(window, (0,255,0), (x * distance, y * distance, distance, distance))
            elif grid[x,y] == 2:
                pygame.draw.rect(window, (0,255,0), (x * distance, y * distance, distance, distance))
            elif  grid[x,y] == 3:
                pygame.draw.rect(window, (255,0,0), (x * distance, y * distance, distance, distance))
 if grid[x,y] == 1:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

2 个答案:

答案 0 :(得分:0)

尝试使用grid[x][y]而不是grid [x,y]

答案 1 :(得分:0)

根据您的generateGrid函数,显示在注释中,

grid[i.x, i.y]函数中将grid[i.x][ i.y]替换为generateGrid

这已解决了您的问题。