numpy 数组可以与整数进行比较吗?

Can a numpy array be compared to an integer?

这是我在作业中必须使用的一些代码:

from PIL import Image
import numpy as np
img = np.array(Image.open("image.png"))[:,:,0]
Known = (img > 0).astype(int)

最后一行 - Known = (img > 0).astype(int) - 是做什么的?

(我试着查了一下,但是在 google 搜索中很难找到“>”符号。

它的功能几乎符合您的预期:它测试数组 img 以查看它是否大于 0。但由于它是一个 NumPy 数组,因此这是一个元素比较:每个元素 都与 0 进行比较。这将创建一个布尔数组,其中包含每个元素的比较结果。 astype(int) 将这个布尔数组转换为整数数组。基本上,它正在为图像中的非零像素制作一个蒙版。

(img > 0).astype(int) = 1 如果数组单元格大于 0,否则为 0

>>> a=np.array([3,5,3])
>>> (a>0)
array([ True,  True,  True], dtype=bool)
>>> (a>0).astype(int)
array([1, 1, 1])