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

时间:2015-05-19 00:01:21

标签: python arrays numpy python-imaging-library linear

这是我必须用于家庭作业的一些代码:

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搜索中搜索">"符号很难。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

如果数组单元格大于0则

(img > 0).astype(int) = 1,如果不是

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