почему это если оператор дает мой ValueError? - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь перебрать массив 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 голосов
/ 27 мая 2019

Согласно вашей generateGrid функции, показанной в комментариях,

Заменить grid[i.x, i.y] на grid[i.x][ i.y] в функции generateGrid.

Это решило вашу проблему.

0 голосов
/ 27 мая 2019

Попробуйте использовать grid[x][y] вместо сетки [x, y]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...