我有两个包含黑白图像的3D阵列,其结构如下:image x pixels_height_values x pixels_width_values。我想保留数组1中不在数组2中的图像。我正在使用列表理解,但结果并不总是我所期望的。我举几个例子:
使用此代码,我得到了预期的结果:
np.random.seed(21)
array1 = np.random.randint(0, 257, 100).reshape((4, 5, 5))
array2 = array1[1:3,:,:]
print(array1)
print("----------------------------------------")
print(array2)
print("----------------------------------------")
print(np.stack([i for i in array1 if i not in array2]))
现在,只需将种子从21更改为42,以及因此像素的值,此方法不再有效(出现的错误是因为列表推导的结果为null,因此np。堆栈没有要堆叠的列表。)
有谁知道为什么会这样?