如标题所述。我试图比较两个大的(21x21)网格,其中包含单点和单破折号的元素,看看每个索引中的每个元素是否相同。使用array1 == array2
会产生以下错误:
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
然而,我并没有遇到对a.all/a.any语法的很好的解释。点之前是什么?他们带什么情人
编辑:我一直在避免使用NumPy,但是没有办法。NumPy是进口的。 有什么想法吗
我正在创建由点和虚线组成的默认网格的代码部分:
defaultgrid = [['.' for x in range(width)] for y in range(height)]
for x in range(1, 21, 2):
defaultgrid[x] = [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
" ", " "]
for x in range(0, 21, 2):
defaultgrid[x] = [".", " ", ".", " ", ".", " ", ".", " ", ".", " ", ".", " ", ".", " ", ".", " ", ".", " ", ".",
" ", "."]
如果您确定要使用Numpy,那么解决错误
The truth value of an array.....
的方法如下:如果您有两个numpy数组
arr1
和arr2
,则到处比较它们是否相等,不是通过if arr1 == arr2:
,而是通过if np.array_equal(arr1, arr2):
或者,如果您确定两个数组具有相同的大小(维度)和类型,那么您也可以像下面这样比较它们是否相等
如果不使用Numpy,那么可以将两个嵌套列表作为
if arr1 == arr2:
进行比较你是说你用numpy只做
np.copy()
。要制作列表的深度副本,可以使用标准copy.deepcopy()(必须import copy
)比较数组的字符串怎么样
Str(arr1)=Str(arr2)
相关问题 更多 >
编程相关推荐