我在处理图像。在管道中,可能会返回原始图像或编辑的图像。更为复杂的是,返回的图像可以具有相同的形状,因此测试相同的形状不是一种方法。根据是否返回原始/编辑的图像,我希望执行不同的步骤。如果使用==
符号,则每次都会返回警告:
DeprecationWarning: elementwise comparison failed; this will raise an error in the future
使用以下代码重现警告:
import numpy as np
picture_1 = np.random.randint(0, 256, (100, 100, 3))
picture_2 = picture_1[10:-10, 10:-10]
print(picture_1 == picture_2)
那么,如何测试不同大小的数组是否相等
请注意,对这个问题的现有答案只侧重于避免比较。就我而言,这种比较是有目的的
Numpy的
==
用于比较值,因此它不是一种方法。如果我理解正确,我想你要找的是
numpy.ndarray.base
正如在official doc中所述,此代码基于
picture_1
检查picture_2
。换句话说,它检查picture_2
是否是picture_1
的view
或者你想用
base
作为类似的东西吗?这将检查从中裁剪
picture_2
的基picture_1
是否与picture_0
相同(值)我建议先测试形状是否相等,如果形状相等,再测试项目是否相等。归根结底,如果形状不相等,第二次比较永远不会有用
如果我有误解,仍然试图避免比较,请澄清
相关问题 更多 >
编程相关推荐