ValueError:包含多个元素的数组的真值是不明确的.使用if语句时使用a.a any()或a.a all().&l



对于一些背景故事,我正在编写一个涉及到各种颜色的正方形网格的程序,我决定将颜色存储在NumPy数组中(我基本上没有NumPy经验)。我将数组格式化为二维数组,其中的每个位置都与网格空间的位置相关。我需要检查当前的颜色所以我做了如果它只是一个列表(对于context数组是数组的名称)我会做的事情:

color = 0, 0, 0
array = numpy.array([(color,color,color,color),
(color,color,color,color),
(color,color,color,color)])
if array[0,0] == color:
#other code that doesn't matter

if语句是错误发生的地方,当这个错误出现在只有and/or的if语句中时,我找不到任何关于该怎么办的信息。如果有人对这个问题有什么见解,我将不胜感激。

解释在这里提供:https://stackoverflow.com/a/65082868/7225290

如果您将特定索引的值与具有相同数据类型的值进行比较,则不会抛出错误。

当你尝试

array = numpy.array([(0,0,0,0),
(0,0,0,0),
(0,0,0,0)])
if array:#Comparing object of type numpy.ndarray with boolean causes the error
pass

最新更新