为什么这个 if 语句会给我一个 ValueError?
why does this if statement give my a ValueError?
我试图遍历一个 numpy 二维数组并检查值 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()
尝试使用 grid[x][y]
而不是网格 [x,y]
根据评论中显示的 generateGrid
函数,
在generateGrid
函数中将grid[i.x, i.y]
替换为grid[i.x][ i.y]
。
这已解决您的问题。
我试图遍历一个 numpy 二维数组并检查值 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()
尝试使用 grid[x][y]
而不是网格 [x,y]
根据评论中显示的 generateGrid
函数,
在generateGrid
函数中将grid[i.x, i.y]
替换为grid[i.x][ i.y]
。
这已解决您的问题。