大佬教程收集整理的这篇文章主要介绍了如何比较 Python 中的两个大型二维数组是否完全相等?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如标题所述。我正在尝试比较两个包含单点和单破折号元素的大(21x21)网格,以查看每个索引处的每个元素是否相同。使用 array1 == array2@H_673_4@ 会产生以下错误:
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
@H_673_4@
但是,我还没有遇到过对 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,2):
defaultgrID[x] = [".",".","."]
@H_673_4@
比较数组的字符串怎么样?
str(arr1) == str(arr2)
,如果您确定要使用 Numpy,那么解决错误 The truth value of an array.....@H_673_4@ 的方法如下:
如果您有两个 numpy 数组 arr1@H_673_4@ 和
arr2@H_673_4@,那么到处比较它们的相等性,而不是通过
if arr1 == arr2:@H_673_4@ 而是通过
if np.array_equal(arr1,arr2):@H_673_4@。
或者,如果您确定您的两个数组具有相同的大小(维度)和类型,那么您也可以像 if np.all(arr1 == arr2):@H_673_4@ 一样比较它们的相等性。
如果您不使用 Numpy,则可以将两个嵌套列表作为 if arr1 == arr2:@H_673_4@ 进行比较。
您是说您使用 numpy 只执行 np.copy()@H_673_4@。要制作列表的深层副本,您可以使用标准 copy.deepcopy()(您必须
import copy@H_673_4@)。
以上是大佬教程为你收集整理的如何比较 Python 中的两个大型二维数组是否完全相等?全部内容,希望文章能够帮你解决如何比较 Python 中的两个大型二维数组是否完全相等?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。