有转换ndarray所有元素的功能吗?

时间:2019-07-22 10:25:49

标签: python numpy

大家好,抱歉我的英语不好! 我有一个小问题:我必须转换ndarray(灰度图像)的所有元素。特别是如果我的值为0,则所需值为0,而> 0的值将变为1。 是否有numpy的功能可以做到这一点? 我可以这样做两个,但我认为这不是最佳解决方案。

2 个答案:

答案 0 :(得分:1)

您应该在numpy中查找花式索引和/或布尔索引。 实际上,您可以做的就是这样

array[array>0] = 1

这会将所有索引> 0设置为1

答案 1 :(得分:1)

如果您不想“就地”工作,可以这样做:

def to_bw(img, dtype=np.uint8):
    return (img > 0).astype(dtype)

例如您将其用作:

import numpy as np

to_bw(np.array([0,1,2]))

它将评估为:

array([0, 1, 1])

请注意,这听起来很像:Convert RGB to black OR white

相关问题