【发布时间】:2020-11-09 03:33:34
【问题描述】:
我有一个 2D Numpy 数组,它表示我在 Python3.7 中制作的基于图块的游戏中的关卡地图。我的数组是 50 行 x 50 列,每个值都是一个整数,代表一种精灵类型(各种墙壁部件、地板等)。当我遍历数组并找到一个墙精灵(例如)时,我想知道该值的行号和列号,以便可以直接引用它。
这似乎是一件很简单的事情,但我似乎找不到合适的 Numpy 函数来遍历 2D 数组并返回它找到的每个数组的 位置[row, col]。然后我可以使用数组位置计算它在屏幕上的相对位置,然后测试与.colliderect()的碰撞。
编辑:为了更清楚起见,我添加了一个事实,即我需要将数组中的每个整数值与墙壁部分(也是整数)的List 进行比较,如果它在列表中,则返回数组位置.
TL;DR如何遍历 Numpy 2darray 并为每个匹配返回 [row, col] 而不是值?
【问题讨论】:
-
好吧,通常你只会使用布尔表达式
array == 4例如会给出一个50x50矩阵与真或假,我认为numpy.where在布尔数组不起作用时获取索引满足您的任何需求。我不可能告诉你如何使用它,numpy 让我很困惑 :) -
考虑改用列表列表。标准 python
enumerate给出索引和值。
标签: python arrays python-3.x numpy numpy-ndarray