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])
这是我在作业中必须使用的一些代码:
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])